Swift 使用Alamofire.upload(…)将NSData从S3放置到预签名的URL在iOS 8上不起作用
以下代码在iOS9上运行良好,但在iOS8上运行时失败,Amazon返回错误400。响应仅包含标题:Swift 使用Alamofire.upload(…)将NSData从S3放置到预签名的URL在iOS 8上不起作用,swift,amazon-s3,ios8,alamofire,Swift,Amazon S3,Ios8,Alamofire,以下代码在iOS9上运行良好,但在iOS8上运行时失败,Amazon返回错误400。响应仅包含标题: 连接=关闭;“内容类型”=“应用程序/xml”;日期=“星期三, 2016年4月13日12:19:21 GMT”;服务器=AmazonS3 NSData是一个图像,内容类型是“image/png”,它告诉amazon不要将其存储为“二进制/八位字节流” 这家伙引导我找到了答案: 事实证明,Alamofire中manager会话上的HTTPAdditionalHeaders有我以前调用的头,A
- 连接=关闭;“内容类型”=“应用程序/xml”;日期=“星期三, 2016年4月13日12:19:21 GMT”;服务器=AmazonS3李>
这家伙引导我找到了答案: 事实证明,Alamofire中manager会话上的HTTPAdditionalHeaders有我以前调用的头,AmazonS3不喜欢iOS8上的头 因此,我所需要的只是在使用.upload(…)函数之前清除标题
Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = [:];
从2017年3月起,当前语法为
Alamofire.SessionManager.default.session.configuration.httpAdditionalHeaders=[:]
Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = [:];