Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 使用Alamofire.upload(…)将NSData从S3放置到预签名的URL在iOS 8上不起作用_Swift_Amazon S3_Ios8_Alamofire - Fatal编程技术网

Swift 使用Alamofire.upload(…)将NSData从S3放置到预签名的URL在iOS 8上不起作用

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

以下代码在iOS9上运行良好,但在iOS8上运行时失败,Amazon返回错误400。响应仅包含标题:

  • 连接=关闭;“内容类型”=“应用程序/xml”;日期=“星期三, 2016年4月13日12:19:21 GMT”;服务器=AmazonS3
NSData是一个图像,内容类型是“image/png”,它告诉amazon不要将其存储为“二进制/八位字节流”


这家伙引导我找到了答案:

事实证明,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 = [:];