2

我已经阅读了如何NSURLConnection自动解压缩压缩(压缩)资源,但是我无法在任何地方找到 Apple 文档或官方词来指定定义此解压缩发生时间的逻辑。我也很想知道这与流数据有何关系。

问题

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

我正在使用该AFNetworking库将这些文件与AFHTTPRequestOperation'sinputStreamoutputStream. 我也尝试过使用AFDownloadRequestOperation类似的结果。

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

我想知道的:

  1. 为什么我的压缩文件没有自动解压?是因为流媒体吗?我知道之后我可以使用另一个库来解压缩,但如果可能的话,我想避免这种情况。
  2. 什么时候NSURLConnection知道什么时候自动解压下载的文件?我在任何地方的文档中都找不到这个。这是否与标头值相关联?

任何帮助将不胜感激。

4

1 回答 1

0

NSURLConnection当响应标头中有适当的Content-Encoding(例如gzip)可用时,将自动解压缩。这取决于您的服务器来安排。

于 2014-04-22T13:25:56.617 回答