Alamofire 2.0 多部分表单数据错误
Posted
技术标签:
【中文标题】Alamofire 2.0 多部分表单数据错误【英文标题】:Alamofire 2.0 Multipart Form Data Error 【发布时间】:2015-09-24 15:41:39 【问题描述】:此代码在迁移到 Swift 2.0 和 Alamofire 2.0 之前工作
manager.upload(requestMethod, NSURL(string: url)!, multipartFormData: multipartFormData in
for param in params
multipartFormData.appendBodyPart(data: param.1.dataUsingEncoding(NSUTF8StringEncoding)!, name: param.0)
multipartFormData.appendBodyPart(data: imageData!, name: "file", fileName: "tempImage", mimeType: "image/*") ,
encodingCompletion: encodingResult in
switch encodingResult
case .Success(let upload, _, _):
upload.responseJSON _, response, result in
switch result
case .Success(let data):
...
case .Failure(let encodingError):
...
case .Failure(let encodingError):
...
)
现在该行:
upload.responseJson...
总是返回失败 "FAILURE: Error Domain=NSURLErrorDomain Code=-999 "cancelled" "
有人成功地在 Alamofire 2.0 中使用了 multipart 并且知道我做错了什么吗?
【问题讨论】:
你检查过网址吗? 谢谢@beretis,我已经解决了这是标题的问题。 面临同样的问题。你能发布答案吗? 嗨@RahulKatariya,检查我的答案。放入 cmets 很长 【参考方案1】:在我的情况下,它与额外的标题有关。我把一般的标题是这样的:
var defaultHeaders = Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders ?? [:]
defaultHeaders["User-Agent"] = userAgent
if let ip = ifAddress
defaultHeaders["X-Forwarded-For"] = ip
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.HTTPAdditionalHeaders = defaultHeaders
manager = Alamofire.Manager(configuration: configuration)
对于取决于特定条件的附加标头,我在请求本身中放入:
if condition
headers = ["Accept": contentType]
manager!.request(requestMethod, url, parameters: params, headers: headers).responseJSON response in
…
【讨论】:
以上是关于Alamofire 2.0 多部分表单数据错误的主要内容,如果未能解决你的问题,请参考以下文章