如何使用HTTPClient的HEAD方法获取所有标头

3
我需要使用HttpClient的HEAD方法来获取头字段,并检查服务器文件的“last-modified”日期。
如果您知道如何获取头字段,请回复我。
如何将“last-modified”标头获取到String对象以进行比较。
这是我的代码:
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());
}
3个回答

2

在httpClient 4.5中,您需要使用:

final HttpHead headMethod = new HttpHead(fileUri);
final Header header = headMethod.getFirstHeader("last-modified");
final String lastModified = header.getValue();

1

来自 HttpClient 文档

HeadMethod head = new HeadMethod("http://jakarta.apache.org");

// Excecute the method here with your HttpClient

Header[] headers = head.getResponseHeaders();
String lastModified = head.getResponseHeader("last-modified").getValue();

你需要添加自己的错误处理。


是的,这是正确的,但当我使用它时,我会得到以下错误:HeadMethod无法解析为类型。你能告诉我如何解决这个问题吗? - Shashi Shirke
这段代码是否正确,但是当我使用它时,出现了以下错误:HeadMethod无法解析为类型。我该如何解决这个问题?请回复。 - Shashi Shirke
@ShashiShirke,您需要下载Apache Commons HTTP客户端库,并将其包含在您的项目中。 - Nate

1
最好使用类似以下的内容:
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpHead head = new HttpHead(url);
String lastModified;
try {
    CloseableHttpResponse response = client.execute(head);
    int statusCode = response.getStatusLine().getStatusCode();
    if (statusCode == 200) {
        Header header = headMethod.getFirstHeader("last-modified");
        lastModified = header.getValue();
    }
} catch (IOException ignored) {
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接