httpUrlConnextion.getContentLength 返回不正确的值
httpUrlConnextion.getContentLength returning incorrect value
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,但它不起作用。
问题是两个 url 是相似的(你可以检查)。太混乱了!
谢谢你!
由此Javadoc,内容长度可能大于Integer.MAX_VALUE(65535)。
您可以试试 getContentLengthLong()
看看结果吗?
每个服务器的Headers不同。
http://blog.teamtreehouse.com/api/get_recent_summary/?count=2 returns content-length but http://raja12.esy.es/api/get_recent_summary/?count=2 header 不包含 content-length header。
如果您在浏览器中按 F12,转到“网络”选项卡并 运行 请求,您可以看到 headers。您将看到 2 个操作 - 您的获取和图标获取。检查您获得的 headers.
假设您可以更改服务器设置或忽略 content-length header 如果它小于 0
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,但它不起作用。 问题是两个 url 是相似的(你可以检查)。太混乱了! 谢谢你!
由此Javadoc,内容长度可能大于Integer.MAX_VALUE(65535)。
您可以试试 getContentLengthLong()
看看结果吗?
Headers不同。 http://blog.teamtreehouse.com/api/get_recent_summary/?count=2 returns content-length but http://raja12.esy.es/api/get_recent_summary/?count=2 header 不包含 content-length header。
如果您在浏览器中按 F12,转到“网络”选项卡并 运行 请求,您可以看到 headers。您将看到 2 个操作 - 您的获取和图标获取。检查您获得的 headers.
假设您可以更改服务器设置或忽略 content-length header 如果它小于 0