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