ASIHTTPREQUEST Нет ответа о длине содержимого (большой файл PDF)

Мое приложение для 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 МБ. Другие файлы в том же месте могут иметь правильную длину.

Что я должен делать?


person Webworth    schedule 06.10.2012    source источник


Ответы (1)


Наконец, я выбрался. Поскольку мой сервер автоматически сжимает файл PDF, поэтому я не могу получить в ответ длину содержимого.

Чтобы отключить функцию gzip, просто добавьте

SetEnv no-gzip dont-vary

в .htaccess файле. Вот и все.

person Webworth    schedule 07.10.2012