【发布时间】:2014-07-04 18:23:48
【问题描述】:
我正在使用 AFNetworking2 从我的 AWS S3 存储桶下载文件 一切正常,除非我为文件设置 Content-Encoding: gzip 。 AFNetworking 无法下载从服务器返回的部分内容响应 它给了我以下错误:
错误域=NSURLErrorDomain 代码=-1015 “无法解码原始数据” UserInfo=0x10d2d8ce0 {NSUnderlyingError=0x10d1ace80“无法解码原始 数据”, NSErrorFailingURLStringKey=http://s3.amazonaws.com/awdtest/fullzip.pdf, NSErrorFailingURLKey=http://s3.amazonaws.com/awdtest/fullzip.pdf, NSLocalizedDescription=无法解码原始数据}
但是,当我从文件中删除“Content-Encoding: gzip”元数据时,它可以正常工作。 我知道我的服务器支持范围请求,并且我已经使用其他方法对其进行了测试,并且效果很好。
这是来自我的服务器的 HTTP 响应:
HTTP/1.1 200 正常
x-amz-id-2: k5b65TtAgrD5Cn3N2aixCCdi6qAmg4j9iuOSNaO0uMRKLHPTQ+DMAA20u9j1CNzA
x-amz-request-id: 7AE5A7DD81ED2B88
日期:格林威治标准时间 2014 年 5 月 16 日星期五 04:45:17
内容编码:gzip
最后修改时间:格林威治标准时间 2014 年 5 月 16 日星期五 04:44:51
ETag:“88bbe0b318bf11dd56a31176d3384e78”
接受范围:字节
内容类型:application/pdf
内容长度:1243325
服务器:AmazonS3
以下是我正在使用的示例文件:
https://s3.amazonaws.com/awdtest/full.pdf
https://s3.amazonaws.com/awdtest/fullzip.pdf(gzip 压缩并将 Content-Encoding 设置为 gip)
如果有人能帮助我解决这个问题,我将不胜感激。
PS:我已经尝试了以下方法,但仍然不起作用
[request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
[request setValue:@"deflate" forHTTPHeaderField:@"Accept-Encoding"];
[request setValue:@"gzip, deflate" forHTTPHeaderField:@"Accept-Encoding"];
【问题讨论】:
标签: ios objective-c http-headers gzip afnetworking-2