NSURLConnection何时解压缩压缩资源?

时间:2013-04-17 18:02:37

标签: compression streaming zip gzip afnetworking

我已经阅读NSURLConnection将如何自动解压缩压缩(压缩)资源,但是我找不到任何指定定义何时解压缩的逻辑的Apple文档或官方词。我也很想知道这与流数据有什么关系。

问题

我相信,我有一台服务器使用分块编码将文件流式传输到我的应用程序。这是一个WCF服务。顺便说一句,我们正在使用流式传输,因为它应该在高使用期间减轻服务器负载,也因为我们的文件将非常大(100的MB)。文件可以压缩或解压缩。我认为在我的情况下,因为我们正在传输数据,Content-Encoding标头不可用,Content-Length也不可用。我只在回复中看到"Transfer-Encoding" = Identity

我正在使用AFNetworking库将这些文件写入AFHTTPRequestOperation的{​​{1}}和inputStream的磁盘。我也尝试过使用outputStream以及类似的结果。

现在,AFDownloadRequestOperation文档声明压缩文件将在下载后自动解压缩(通过AFNetworking,我相信)并且不会发生这种情况。我把它们写到我的文档目录中,没有任何问题。但它们仍然是拉链的。我也可以手动解压缩它们。所以文件没有损坏。他们不会自动解压缩,因为我正在流式传输数据而且未指定NSURLConnection吗?

我想知道的事情:

  1. 为什么我的压缩文件不能自动解压缩?是因为流媒体?我知道我之后可以使用另一个库进行解压缩,但是如果可能的话我想避免这种情况。
  2. Content-Encoding何时知道何时自动解压缩下载的文件?我无法在任何地方的文档中找到它。这是否与标题值相关联?
  3. 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

当响应标头中有适当的NSURLConnection(例如Content-Encoding)时,

gzip会自动解压缩。这取决于你的服务器安排。