У меня есть следующий фрагмент кода:
URL url = new URL("http://myserver.com/getFile.php");
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
Все работает нормально, пока я не работаю с WiFi-соединением. Если я попытаюсь запустить этот код, когда доступно только соединение GPRS/3G, conexion.getContentLength()
вернет -1.
Есть идеи, почему?
РЕДАКТИРОВАТЬ: я проверил заголовки, используя getHeaderFields(). Они отличаются, если я использую сеть 3G. По сути, в этом случае Content-Length нет. Любая идея, почему сервер возвращает разные заголовки? Я не использую какой-либо специальный скрипт для предоставления файла, я получаю только файл, который находится в заданном месте.
Весь заголовок для случая WiFi:
{Accept-Ranges=[bytes], Connection=[Keep-Alive], Content-Length=[628254], Content-Type=[text/plain; charset=UTF-8], Date=[Вторник, 29 ноября 2011 г., 11:22:50 по Гринвичу], ETag=["7a0c7-9961e-4af3f38778500"], Keep-Alive=[timeout=15], Last-Modified=[ Пт, 14 октября 2011 г., 09:52:52 по Гринвичу], Server=[Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 с Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2 .9 OpenSSL/0.9.8o mod_wsgi/3.3 mod_perl/2.0.4 Perl/v5.10.0]}
Вся шапка для случая при использовании 3G:
{Accept-Ranges=[bytes], Connection=[Keep-Alive], Content-Type=[text/plain; charset=UTF-8], Date=[Вторник, 29 ноября 2011 г., 11:20:33 по Гринвичу], ETag=["7a0c7-9961e-4af3f38778500"], Keep-Alive=[timeout=15], Last-Modified=[ Пт, 14 октября 2011 г., 09:52:52 по Гринвичу], Server=[Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 с Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2 .9 OpenSSL/0.9.8o mod_wsgi/3.3 mod_perl/2.0.4 Perl/v5.10.0], Transfer-Encoding=[chunked], Warning=[214 warkaz-fe07 "Трансформация применена"]}