从Android中的HttpResponse获取标头



在Android中,有没有一种方法可以使用HttpClient execute()方法返回的HttpResponse对象来获取特定标头的值?

有几种方法可以获得特定的标头。HttpResponse继承自HttpMessage,HttpMessage提供以下标头检索方法:

  • Header getFirstHeader(String name)
  • Header[] getHeaders(String name)
  • Header getLastHeader(String name)

在您的情况下,您可能想要getFirstHeader(String)。头可以包含多个值,因此Header[]数组从getHeaders()返回;如果您只期望有一个标头,那么getFirstHeader(String)就足够了。

我总是使用这个代码

最初,我这样做

 Header[] headers = response.getAllHeaders();

接下来,我将在hashmap 中使用一个简单的方法进行转换

 private HashMap<String, String> convertHeadersToHashMap(Header[] headers) {
    HashMap<String, String> result = new HashMap<String, String>(headers.length);
    for (Header header : headers) {
        result.put(header.getName(), header.getValue());
    }
    return result;
}

现在我可以获得任何值

也许有人可以帮忙祝好运

您尝试过HttpResponse.getHeaders()方法吗?

尝试以下方法:-

URL obj = new URL("http://mkyong.com");
    URLConnection conn = obj.openConnection();
    Map<String, List<String>> map = conn.getHeaderFields();
    System.out.println("Printing Response Header...n");
    for (Map.Entry<String, List<String>> entry : map.entrySet()) {
        System.out.println("Key : " + entry.getKey() 
                           + " ,Value : " + entry.getValue());
    }
    System.out.println("nGet Response Header By Key ...n");
    String server = conn.getHeaderField("Server");
    if (server == null) {
        System.out.println("Key 'Server' is not found!");
    } else {
        System.out.println("Server - " + server);
    }
    System.out.println("n Done");
    } catch (Exception e) {
    e.printStackTrace();
    }

http://www.mkyong.com/java/how-to-get-http-response-header-in-java/

请尝试HttpResponse.getAllHeaders()打印页眉和在页眉中打印cookie。

response.getHeaders("Set-Cookie")

最新更新