0

我的 iOS 应用程序正在使用 ASIHTTPREQUEST 从服务器下载文件。它运作良好,但 uiprogressview 没有。

所以我使用代码来检查标题信息:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://www.ozis.com.au/nm.pdf"]];
[request startSynchronous];
NSLog(@"%@",[request responseHeaders]);

然后我发现没有内容长度响应。结果如下所示:

"Accept-Ranges" = bytes;
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Type" = "application/pdf";
Date = "Sat, 06 Oct 2012 13:47:15 GMT";
Etag = "\"2b5139-ddf639-4cafe418b6140\"";
"Keep-Alive" = "timeout=10, max=30";
"Last-Modified" = "Mon, 01 Oct 2012 12:07:57 GMT";
Server = Apache;
"Transfer-Encoding" = Identity;
Vary = "Accept-Encoding";

但有时,也许有 5% 的机会,经过漫长的等待,我可以得到它的长度。此 PDF 文件为 13 MB。同一位置的其他文件可以获得正确的长度。

我应该怎么办?

4

1 回答 1

1

最后,我成功了。因为我的服务器会自动对 PDF 文件进行 gzip 压缩,所以我无法获取内容长度作为响应。

要关闭 gzip 功能,只需添加

SetEnv no-gzip dont-vary

.htaccess文件中。而已。

于 2012-10-07T00:54:33.697 回答