有没有办法在Android中使用
HttpClient
的execute()
方法返回的HttpResponse
对象中获取特定标头的值?请注意,保留HTML标记。HttpClient
的execute()
方法返回的HttpResponse
对象中获取特定标头的值?请注意,保留HTML标记。有几种方法可以获取特定的头信息。HttpResponse 继承自 HttpMessage,它提供了以下头信息检索方法:
Header getFirstHeader(String name)
(获取指定名称的第一个头信息)Header[] getHeaders(String name)
(获取指定名称的所有头信息)Header getLastHeader(String name)
(获取指定名称的最后一个头信息)在您的情况下,您可能需要使用 getFirstHeader(String)
。头信息可以包含多个值,因此从 getHeaders()
返回 Header[]
数组;如果您只期望存在单个头信息,则应该使用 getFirstHeader(String)
。
我经常使用这段代码
起初,我这样做
Header[] headers = response.getAllHeaders();
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;
}
现在我可以获取任何值
也许有人能够帮助 祝好运
尝试以下方法:
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.getHeaders()
方法吗?
HttpResponse.getAllHeaders()
打印头信息,并在头信息中打印cookie。response.getHeaders("Set-Cookie")
Header
,而不是String
。 - Parampal PoonihttpURLConnection.getHeaderField("Location")
。 - shkschneider