Alamofire 4.0 / Swift 3.0 - 附加多部分表单数据(CSV 文件)
Posted
技术标签:
【中文标题】Alamofire 4.0 / Swift 3.0 - 附加多部分表单数据(CSV 文件)【英文标题】:Alamofire 4.0 / Swift 3.0 - Appending multipart form data (CSV file) 【发布时间】:2016-10-20 00:22:24 【问题描述】:我之前有一个在 Swift 2.2 中工作的 .post 多格式上传,它遵循以下格式(请注意,我没有包括所有的 AlamoFire 代码......那太长了。我只是包括相关的部分):
let data = mailStringArray[i].dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
csvDataArray.append(data!)
self.alamoFireManager.upload(.POST, "INSERT URL HERE", headers: header, multipartFormData: multipartFormData in
multipartFormData.appendBodyPart(data: csvDataArray[0], name: "bulk", fileName: "multi-input.csv", mimeType: "text/csv")
这非常有效。但是,在迁移到 Swift 3.0 和 Alamofire 4.0 之后,我现在使用以下格式:
let data = String(mailStringArray[i]).data(using: String.Encoding.utf8, allowLossyConversion: false)
csvDataArray.append(data! as NSData)
self.alamoFireManager.upload(multipartFormData: multipartFormData in
multipartFormData.append(csvDataArray[0], withName: "bulk", fileName: "multi-input.csv", mimeType: "text/csv")
usingThreshold:UInt64.init(),
to:"INSERT URL HERE",
method:.post,
headers:["Authorization": "INSERT TOKEN HERE"],
encodingCompletion: encodingResult in
我最终得到以下错误:无法使用类型为“(NSData,withName:String,fileName:String,mimeType:String)”的参数列表调用参数追加
我认为这是因为在 Swift 3.0 中我不能再发布具有“text/csv”mimetype 的 NSData....但我不完全确定。
任何帮助都会很棒。谢谢!
【问题讨论】:
【参考方案1】:试试
multipartFormData.append(csvDataArray[0] as Data, withName: "bulk", fileName: "multi-input.csv", mimeType: "text/csv")
【讨论】:
以上是关于Alamofire 4.0 / Swift 3.0 - 附加多部分表单数据(CSV 文件)的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire 4.0 / Swift 3.0 - 附加多部分表单数据(CSV 文件)
在 Swift 3.0 (Alamofire 4.4.0) 中的一些请求后,Alamofire 停止工作
Swift 3.0 迁移后的 Alamofire 错误:“调用中的额外参数”(请求方法)