Methods 如何实现httpclient的HEAD方法

Methods 如何实现httpclient的HEAD方法,methods,httpclient,head,Methods,Httpclient,Head,嗨,我正在从服务器下载文件。我必须使用HEAD方法获取元信息。andybody帮助我实现HEAD方法以获取“last modified”日期和modified since日期 这是我的密码: HttpClient client= new DefaultHttpClient(); //HttpGet get = new HttpGet(url); HttpHead method = new HttpHead(url); HttpResponse response= client.execute(m

嗨,我正在从服务器下载文件。我必须使用HEAD方法获取元信息。andybody帮助我实现HEAD方法以获取“last modified”日期和modified since日期

这是我的密码:

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
HttpClient=newdefaulthttpclient();
//HttpGet=新的HttpGet(url);
HttpHead方法=新的HttpHead(url);
HttpResponse response=client.execute(方法);
Header[]s=response.getAllHeaders();
System.out.println(“来自httpclient的头:”);
对于(int i=0;i
HEAD和GET方法的区别在于响应中不包含主体。否则,两者是相同的。换句话说,HEAD方法获取所有的头。它不用于获取单个头的数据,它只是一次检索所有头

在代码示例中,您已经有了所有的头,因为您执行了一个头请求。在for循环中,您可以输出来自标题的所有数据。如果上次修改的
不存在,则服务器没有为此资源提供它


请注意,
如果修改,因为它是一个请求头字段,而不是响应头字段。您可以将其设置为指示服务器仅在修改的自日期已过时返回资源。如果只希望在服务器上修改资源时检索该资源,则只需将GET请求与
If modified since
头一起使用即可。要知道服务器是否支持此标头,请检查此工具:

在您给我们的代码示例中,您已经执行了完整的标头。这包括所有标题信息。在那之后你为什么还要做一个额外的头部?这似乎是多余的。如果服务器提供的话,上次修改/修改的代码已经存在了。哦,这是什么语言?我假设是C#,但这些类似乎是Apache类,所以可能是Java?请更新。