1

打开 URLConnection 时,我使用以下代码来获取内容长度,但它返回 -1。

URL url = new URL(sUrl[0]);
URLConnection connection = url.openConnection();
connection.connect();
int fileLength = connection.getContentLength();

然后我假设服务器没有设置内容长度标头(并且连接对象中的挖掘确认该值为-1),因此在PHP中使用以下内容自己设置一个:

header('Content-Length: '.strlen($output));

当我打印出我的值时,strlen($output)我得到了正确的值,但是这个标头似乎没有进入 Java。

需要任何建议或更多代码吗?谢谢

4

2 回答 2

0

当设置为时,结果content-length应该被忽略。即使我在 PHP 中手动设置它,我的网络主机似乎也更进一步并完全去除了标题。通过 Chrome 的高级 REST 应用程序确认。transfer-encodingchunked

于 2013-06-17T01:43:51.357 回答
0

如果内容长度标头确实从您要连接的服务器发回给您,那么您拥有的代码将起作用。您可以通过点击一个返回 Content-Length 的简单 Web 服务来证明这一点,如下面的代码所示:

URL url = new URL("http://freegeoip.net/json/199.201.1.200");
URLConnection connection = url.openConnection();
int fileLength = connection.getContentLength();    
System.out.println(fileLength);

当你运行它时,你会看到它打印出一个内容长度。

于 2013-06-10T00:57:01.667 回答