在Android中从HttpResponse获取标头

有没有办法使用Android中的HttpClient execute()方法返回的HttpResponse对象获取特定头的值?

Solutions Collecting From Web of "在Android中从HttpResponse获取标头"

有几种方法可以获得特定的标题。 HttpResponse从HttpMessageinheritance,它提供了以下头部检索方法:

  • 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()方法?

请尝试使用HttpResponse.getAllHeaders()打印标题并在Headers中打印Cookie。

 response.getHeaders("Set-Cookie") 

尝试下面的方法: –

 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/