Apache Web 服务器获取 - 文件大小

Apache Web Server Get - File Size

我想访问本地 Apache Web 服务器及其文件,比方说,http://foo.com/cats.jpg

我不希望我的客户端看到图像,而是接收数据、显示其文件大小和数据传输持续时间并刷新文件。我如何使用 Java HTTP 代码来实现?

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://foo.com/cats.jpg");
HttpResponse response = client.execute(request);

// Get the response but don't show the content, just file size and duration of data transfer

感谢您的帮助!

当您执行 html get 操作时,它会 returns 响应。该响应包含包含重要信息的 header 以及内容(在本例中为 .jpg 文件)。 header可以告诉你长度,mime-type等。如果你需要显示文件长度,你可以使用

response.getLastHeader("Content-Length").getValue()

要确定数据传输花费了多长时间,只需在您想要计时的操作前后调用 System.currentTimeMillis(),然后减去它们即可知道操作花费了多少毫秒。例如:

long start = System.currentTimeMillis();
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://foo.com/cats.jpg");
HttpResponse response = client.execute(request);
String size = response.getLastHeader("Content-Length").getValue();
long end = System.currentTimeMillis();
System.out.println("It took "+(end-start)+" milliseconds and the file is "+
    size+" bytes long");