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 停止工作

Alamofire Swift 3.0 调用中的额外参数

Swift 3.0 迁移后的 Alamofire 错误:“调用中的额外参数”(请求方法)

无法调用非函数类型“HTTPURLResponse?”的值- 阿拉莫菲尔 4.0

Alamofire 自定义响应从 Alamofire v1.3 迁移到 3.0(和 Swift 2 语法)