为什么我的NSURLConnection报告不正确的expectedContentLength

我有一个NSURLConnection和didReceiveResponse我正在检查[response expectedContentLength]并得到非常大的值,如18446744073709551615.这是没有办法这是正确的。 下载大约3k字节,当我期待在fiddler中有相同的请求时,我看到一个(正确的)内容长度为3k字节的响应头。

为避免此问题,请将标题字段“Accept-Encoding”设置为@“gzip; q = 0”。 告诉服务器你不接受gzip,并且如果可能的话发送未压缩的。

与评论有关的答案是,这是因为结果是gzip编码。 奇怪的是, expectedContentLength长度的价值似乎是垃圾,不能被信任。 如果结果是gzip编码,那么NSURLConnection不能正确地确定未编码结果的大小。