我的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。在同一个地方的其他文件可以得到正确的长度。
我该怎么办?
答案 0 :(得分:1)
最后,我做到了。因为我的服务器自动gzip-ed PDF文件所以我无法获得内容长度作为响应。
要关闭gzip功能,只需添加
即可SetEnv no-gzip dont-vary
在.htaccess
文件中。就是这样。