2016-09-22 95 views
11

我们如何在Alamofire 4.0的上传功能中添加认证标头?Alamofire 4.0上传MultipartFormData标头

下面是示例代码,但我认为没有办法在函数中添加标题。

Alamofire.upload(
    multipartFormData: { multipartFormData in 
     multipartFormData.append(unicornImageURL, withName: "unicorn") 
     multipartFormData.append(rainbowImageURL, withName: "rainbow") 
    }, 
    to: "https://httpbin.org/post", 
    encodingCompletion: { encodingResult in 
     switch encodingResult { 
     case .success(let upload, _, _): 
      upload.responseJSON { response in 
       debugPrint(response) 
      } 
     case .failure(let encodingError): 
      print(encodingError) 
     } 
    } 
) 

上一页alamofire的版本支持直接添加标题,但不是新的。有任何想法吗?

回答

42

我得到了解决方案。

Alamofire.upload(multipartFormData:{ multipartFormData in 
     multipartFormData.append(unicornImageURL, withName: "unicorn") 
     multipartFormData.append(rainbowImageURL, withName: "rainbow")}, 
     usingThreshold:UInt64.init(), 
     to:"https://httpbin.org/post", 
     method:.post, 
     headers:["Authorization": "auth_token"], 
     encodingCompletion: { encodingResult in 
     switch encodingResult { 
     case .success(let upload, _, _): 
      upload.responseJSON { response in 
       debugPrint(response) 
      } 
     case .failure(let encodingError): 
      print(encodingError) 
     } 
    }) 

希望它能帮助你。

+0

感谢您的接受。我有一个相关的图片上传与其进展相关的问题。如果你知道那么你能帮我吗?我现在增加了关于SO的问题。 –

+0

http://stackoverflow.com/questions/39631823/swift-3-alamofilre-4-0-multipart-upload-with-progress。 –

+0

Alamofire 4中的音频文件如何? - 我尝试以这种形式发送音频文件:multipartFormData.append(audioLocalPath,withName:“file”,fileName:“file”,mimeType:“application/octet-stream”),但发生此错误:multipartEncodingFailed(Alamofire.AFError .MultipartEncodingFailureReason.bodyPartFileNotReachableWithError(file:/// var/mobile/Containers/....... /Documents/item.mp3,NSUnderlyingError = 0x16049100 {Error Domain = NSPOSIXErrorDomain Code = 2“No such file or directory”}} )) - 哪里有问题?请求或坏音频路径? – Saeid