如何实现httpclient的HEAD方法

时间:2011-10-19 13:56:01

标签: methods httpclient head

您好我从服务器下载文件。我必须使用HEAD方法获取元信息。 andybody帮助我实现HEAD方法以获得“最后修改”日期和修改后的日期。

这是我的代码:

HttpClient client= new DefaultHttpClient();
//HttpGet get = new HttpGet(url);
HttpHead method = new HttpHead(url);
HttpResponse response= client.execute(method);

Header[] s=response.getAllHeaders();
System.out.println("THe header from the httpclient:");
for(int i=0; i < s.length; i++){
    Header hd = s[i];       
    System.out.println("Header Name: "+hd.getName()
        + "       " + " Header Value: " + hd.getValue());
}

//here I have to implement the HEAD method

1 个答案:

答案 0 :(得分:2)

HEAD和GET方法之间的区别在于响应不包含正文。否则,两者是相同的。换句话说,HEAD方法获取所有标头。 用于获取单个标头的数据,它只是一次检索所有标头。

在代码示例中,您已经拥有所有标头,因为您执行了HEAD请求。在for循环中,您输出标题中的所有数据。如果last-modified不存在,则服务器不会为此资源提供它。

请注意,if-modified-since是请求标头字段,而不是响应标头字段。您可以将其设置为指示服务器仅在修改后的日期已过去时才返回资源。如果您只想在服务器上修改资源时检索资源,则可以使用带有if-modified-since标头集的GET请求。要了解服务器是否支持此标头,请选中此工具:http://www.feedthebot.com/tools/if-modified/