HttpURLConnection connection =(HttpURLConnection)blogFeedUrl.openConnection();
connection.connect();
int contentLength = connection.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并且它不起作用。 问题是这两个网址是相似的(你可以检查)。这太令人困惑了! 谢谢你!
答案 0 :(得分:1)
每台服务器的标头不同。 http://blog.teamtreehouse.com/api/get_recent_summary/?count=2返回内容长度,但http://raja12.esy.es/api/get_recent_summary/?count=2标头不包含内容长度标头。
如果您在浏览器中按F12,则可以看到标题,转到网络标签并运行请求。您将看到2个操作 - 您的获取和图标获取。检查你的获取标题。
假设您可以更改服务器的设置,或者如果小于0则忽略内容长度标题
答案 1 :(得分:0)
从此Javadoc开始,内容长度可能会大于Integer.MAX_VALUE(65535)。
您可以尝试使用getContentLengthLong()
来查看结果吗?