【问题标题】:how to use HEAD method of HTTPClient to get all headers如何使用 HTTPClient 的 HEAD 方法获取所有标头
【发布时间】:2011-12-10 19:44:40
【问题描述】:

我必须使用HttpClient 的HEAD 方法来获取标头字段并检查服务器文件的“最后修改”日期。
我无法得到那个,如果您知道如何获取标题字段,请回复。 如何将“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());
}

【问题讨论】:

    标签: java header http-headers httpclient head


    【解决方案1】:

    在 httpClient 4.5 上,您将使用:

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

    【讨论】:

      【解决方案2】:

      来自 HttpClient documentation

      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 无法解析为类型。你能告诉我如何解决这个问题吗?
      • 是写的,但是当我使用它时,我得到了以下错误。 HeadMethod 无法解析为类型。我应该如何克服这个问题。请回复..
      • @ShashiShirke,您需要下载 Apache commons http 客户端库,并将其包含在您的项目中。
      【解决方案3】:

      最好使用这样的东西:

      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) {
      }
      

      【讨论】:

        猜你喜欢
        • 2018-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-25
        • 2013-04-25
        • 1970-01-01
        • 2016-04-20
        • 1970-01-01
        相关资源
        最近更新 更多