设置“Content-Encoding: gzip”时,AFNetworking 无法恢复下载

2024-03-26

我正在使用 AFNetworking2 从我的 AWS S3 存储桶下载文件 一切工作正常,除了当我为文件设置 Content-Encoding: gzip 时。 AFNetworking 无法下载从服务器返回的部分内容响应 它给了我以下错误:

错误域=NSURLErrorDomain代码=-1015“无法解码原始数据” UserInfo=0x10d2d8ce0 {NSUnderlyingError=0x10d1ace80“无法解码原始数据 数据”, NSErrorFailingURLStringKey=http://s3.amazonaws.com/awdtest/fullzip.pdf http://s3.amazonaws.com/awdtest/fullzip.pdf, NSErrorFailingURLKey=http://s3.amazonaws.com/awdtest/fullzip.pdf http://s3.amazonaws.com/awdtest/fullzip.pdf, NSLocalizedDescription=无法解码原始数据}

但是,当我从文件中删除“Content-Encoding:gzip”元数据时,它工作正常。 我知道我的服务器支持范围请求,并且我已经使用其他方法对其进行了测试,并且工作正常。

这是我的服务器的 HTTP 响应:

HTTP/1.1 200 好

x-amz-id-2: k5b65TtAgrD5Cn3N2aixCCdi6qAmg4j9iuOSNaO0uMRKLHPTQ+DMAA20u9j1CNzA

x-amz-请求-id:7AE5A7DD81ED2B88

日期:2014 年 5 月 16 日星期五 04:45:17 GMT

内容编码:gzip

最后修改时间:2014 年 5 月 16 日星期五 04:44:51 GMT

ETag:“88bbe0b318bf11dd56a31176d3384e78”

接受范围:字节

内容类型:应用程序/pdf

内容长度:1243325

服务器:亚马逊S3

以下是我正在使用的示例文件:

https://s3.amazonaws.com/awdtest/full.pdf https://s3.amazonaws.com/awdtest/full.pdf

https://s3.amazonaws.com/awdtest/fullzip.pdf https://s3.amazonaws.com/awdtest/fullzip.pdf(gzip 压缩并将内容编码设置为 gip)

如果有人能帮助我解决这个问题,我将不胜感激。

PS:我已经尝试了以下方法,但仍然不起作用

[request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];


[request setValue:@"deflate" forHTTPHeaderField:@"Accept-Encoding"];


[request setValue:@"gzip, deflate" forHTTPHeaderField:@"Accept-Encoding"];

使用 Wireshark 查看接收到的 http 正文。

这可能是您使用的responseSerializer无法解析原始数据。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置“Content-Encoding: gzip”时,AFNetworking 无法恢复下载 的相关文章

随机推荐

  • 为什么这不能是一个原始的?

    我正在摆弄 JavaScript 并注意到this永远不可能是原始的 我在说什么 让我解释 以这个函数为例 function test return typeof this test call Abc object test call 12
  • MVP 观点到底有多蠢?

    我正在尝试学习 MVP 但有些事情让我困惑 如果Presenter使用视图作为界面 那么View就不能只是控件的简单渲染 想象一下 尝试编写一个打字练习游戏 其中单词是随机生成到 UI 中的 用户必须在单词从屏幕上落下时输入单词 所以视图将
  • 以编程方式搜索 GMail?

    有没有什么方法可以以编程方式搜索 GMail 最好使用 C 例如 我想获取与搜索匹配的所有电子邮件标签 MyLabel 来自 电子邮件受保护 cdn cgi l email protection 以便我可以根据需要解析电子邮件正文 我发现的
  • 鼠标悬停在绝对定位的 div 上触发

    客观的 当将鼠标悬停在表格单元格上时 表格单元格的右上角会出现一个小的放大镜图标 将鼠标悬停在放大镜图标上并单击它将打开一个对话框窗口 以显示有关特定表格单元格中的项目的详细信息 我想为数百个表格单元重复使用相同的图标 而不是每次都重新创建
  • 以编程方式将库导入到 Databricks 中的工作区

    我想以编程方式添加一个 Python Wheel 库到 SharedDatabricks 上的工作区 在 GUI 中 工作区 gt 导入 gt 库 很容易做到 但我不知道如何在 Databricks CLI 中做到这一点 所以我想我有两种可
  • 如何删除solidity中的数组项

    我正在尝试删除 Solidity 数组中的某个项目 我正在探索一些文章 https ethereum stackexchange com questions 1527 how to delete an element at a certai
  • 获取 Linux 中 Windows 路径的基本名称

    假设我有一个包含 Windows 文件地址的字符串 比方说 local address C TEMP filename txt 从我使用的上述地址检索文件名 import os filename os path basename local
  • 如何计算按 toshortdatestring 分组的表的行数?

    我们有一个具有以下结构的数据库 public partial class ChartData public int Id get set public DateTime Timestamp get set public string Fun
  • java.lang.NoClassDefFoundError:com.google.android.gms.ads.AdView

    我正在编写一段代码来在我的 Android 应用程序中显示 Admob 横幅 为了实现这一目标 我做了以下一些调整 配置的谷歌播放服务库如下 https developers google com mobile ads sdk docs h
  • 在 Whatsapp Business Cloud api 中向多个收件人发送消息

    有没有一种方法可以在一个发布请求中向多个收件人发送消息 与我发送用分号分隔的电子邮件的方式相同 WhatsApp Business Cloud API 中没有选项可以一次性向多个电话号码发送消息 您必须一一发送或通过循环发送消息
  • React Material-UI 禁用处理程序中的按钮

    尝试在用户单击按钮后禁用该按钮 但通过处理程序函数 我参考过这两个类似的问题 React Material UI 禁用时如何为按钮提供自定义颜色 https stackoverflow com questions 55586626 reac
  • ASP.NET FileUpload:选择文件后如何自动回发?

    我正在开发 ASP NET 应用程序 在 FileUpload 控件中选择文件后 我需要回发到服务器 而不必让用户显式单击 提交 按钮 这可能吗 如果是这样 怎么办 我假设您想立即开始上传 如果是这样 您应该对此做出反应changeJava
  • 在 C++ 中访问父命名空间

    我有一个类似以下的场景 class criterion stuff about criteria namespace hex class criterion public criterion does not compile This sh
  • 双精度数据类型的简单数学运算比浮点数据类型更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的双精度数比浮点数快吗 https stackoverflow com questions 158889 are doubles faster than floats in c 我编写了简单的基
  • 使用 Python(或 R)提取 Google Scholar 结果

    我想使用 python 来抓取谷歌学术搜索结果 我找到了两个不同的脚本来做到这一点 一个是gscholar py https github com venthur gscholar另一个是scholar py 那个可以用作 python 库
  • 如何从地图上删除带有粘合圆的标记?

    我确实用标记绑定了圆圈以使视图如下 但是当我尝试从地图上删除标记时 圆圈仍然存在 唔 如何删除带有圆圈的标记 相关代码 function removeMarker if selectedMarker selectedMarker setMa
  • 在 C# 中,有没有办法使用短前缀而不是每个节点的完整命名空间来生成 XDocument?

    我只是想让我的 XML 更整洁 更简洁 我知道在 C 中可以做这样的事情 XNamespace ds http schemas microsoft com ado 2007 08 dataservices new XElement ds M
  • Ruby on Rails 3.0.3 中的自定义变形问题

    我有一个模型叫生产替代品 我在 config initializers inflections rb 中添加了一个新的变形规则 如下所示 inflect irregular produccion alternativa produccion
  • 如何从浏览器获取 Skype 联系人列表?

    我想在浏览器页面中获取我的 Skype 联系人列表 就像https imo im https imo im 可以 Skype API 是如何工作的 对我来说这真的很令人困惑 据我所知 我需要下载 skype4com 才能使其与 PHP 或
  • 设置“Content-Encoding: gzip”时,AFNetworking 无法恢复下载

    我正在使用 AFNetworking2 从我的 AWS S3 存储桶下载文件 一切工作正常 除了当我为文件设置 Content Encoding gzip 时 AFNetworking 无法下载从服务器返回的部分内容响应 它给了我以下错误