2015-07-23 4 views
1
HttpURLConnection connection =(HttpURLConnection)blogFeedUrl.openConnection(); 
      connection.connect(); 
       int contentLength = connection.getContentLength(); 

Так у меня есть эти 2 строки кода, когда:httpUrlConnextion.getContentLength возвращения некорректное значение

URL blogFeedUrl = new URL("http://blog.teamtreehouse.com/api/get_recent_summary/?count=2"); 

все работает отлично и ContentLength получить приемлемое значение. но когда:

URL blogFeedUrl = new URL("http://raja12.esy.es/api/get_recent_summary/?count=2"); 

getContentLength возвращается -1 и он не работает. Дело в том, что оба URL-адреса аналогичны (вы можете проверить). Это так запутанно! Thnank you!

ответ

1

Заголовки с каждого сервера различаются. http://blog.teamtreehouse.com/api/get_recent_summary/?count=2 возвращает длину содержимого, но http://raja12.esy.es/api/get_recent_summary/?count=2 заголовки не содержат заголовка содержимого.

Вы можете видеть заголовки, если вы нажмете F12 в браузере, перейдите на вкладку «Сеть» и запустите запрос. Вы увидите 2 операции - получите и получите favicon. Проверьте, есть ли у вас заголовки.

Предположим, Вы можете изменить настройки сервера или просто игнорировать заголовок длины содержимого, если она меньше 0

+0

, пожалуйста, дайте мне знать, если вы видите альтернативу – adamine

+0

Если вы хотите использовать HttpURLConnection, вы можете получить InputStream, а затем использовать http://stackoverflow.com/a/309448/1003030 – ainlolcat

0

Из этого Javadoc длина содержимого может быть больше Integer.MAX_VALUE (65535).

Вы пытаетесь, если хотите, попробовать с getContentLengthLong() и посмотреть результаты?

+0

это weard, он не распознает метод getContentLengthLong() :( – adamine

+0

однако я не думаю, что длина может быть это больше – adamine

Смежные вопросы