【发布时间】:2013-04-17 18:02:36
【问题描述】:
我已经阅读了NSURLConnection 将如何自动解压缩压缩(压缩)资源,但是我在任何地方都找不到 Apple 文档或官方词来指定定义此解压缩发生时间的逻辑。我也很想知道这与流数据有何关系。
问题
我相信,我有一台服务器,它使用分块编码将文件流式传输到我的应用程序。这是 WCF 服务。顺便说一句,我们使用流媒体是因为它可以在高使用率期间减轻服务器负载,并且因为我们的文件将非常大(100 MB)。这些文件可以被压缩或未压缩。我认为在我的情况下,因为我们正在流式传输数据,Content-Encoding 标头不可用,Content-Length 也不可用。我的回复中只看到"Transfer-Encoding" = Identity。
我正在使用AFNetworking 库通过AFHTTPRequestOperation 的inputStream 和outputStream 将这些文件写入磁盘。我也尝试过使用AFDownloadRequestOperation 并得到类似的结果。
现在,AFNetworking 文档声明压缩文件将在下载后自动解压缩(我相信是通过 NSURLConnection),但这种情况不会发生。我将它们写入我的文档目录,没有任何问题。然而,它们仍然是拉链的。我也可以手动解压缩它们。所以文件没有损坏。它们不会自动解压缩,因为我正在流式传输数据并且因为未指定 Content-Encoding?
我想知道的:
- 为什么我的压缩文件没有自动解压?是因为流媒体吗?我知道之后我可以使用另一个库来解压缩,但如果可能的话,我想避免这种情况。
-
NSURLConnection究竟何时知道何时自动解压缩下载的文件?我在任何地方的文档中都找不到这个。这是否与标头值相关联?
任何帮助将不胜感激。
【问题讨论】:
标签: compression streaming zip gzip afnetworking