Java 在 Android 中从 HttpResponse 获取标头
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6424611/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Get header from HttpResponse in Android
提问by Radu Stoenescu
Is there a way to get the value of a specific header using the HttpResponse
object returned by the HttpClient
execute()
method in Android?
有没有办法使用Android中方法HttpResponse
返回的对象获取特定标头的值HttpClient
execute()
?
采纳答案by Rob Hruska
There are several ways to get specific headers. HttpResponseinherits from HttpMessage, which provides the following header retrieval methods:
有几种方法可以获取特定的标头。HttpResponse继承自HttpMessage,它提供以下标头检索方法:
In your case, you probably want getFirstHeader(String)
. Headers can contain multiple values, hence the Header[]
array return from getHeaders()
; if you only expect there to be a single header, getFirstHeader(String)
should suffice.
在您的情况下,您可能想要getFirstHeader(String)
. 标头可以包含多个值,因此Header[]
数组从getHeaders()
; 如果您只希望有一个标题,getFirstHeader(String)
就足够了。
回答by Michael
Have you tried HttpResponse.getHeaders()
method?
你试过HttpResponse.getHeaders()
方法吗?
回答by user366584
Please try HttpResponse.getAllHeaders()
for printing headers and for printing cookie in Headers.
请尝试HttpResponse.getAllHeaders()
打印标题并在标题中打印 cookie。
response.getHeaders("Set-Cookie")
回答by duggu
try the below method :-
试试下面的方法:-
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/
http://www.mkyong.com/java/how-to-get-http-response-header-in-java/
回答by Эвансгелист Evansgelist
I always use this code
我总是使用这个代码
Initially, I do so
最初,我这样做
Header[] headers = response.getAllHeaders();
Next, I'm using a simple method converts in hashmap
接下来,我在 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;
}
Now I can get any value
现在我可以得到任何价值
Maybe someone can help Good luck
也许有人可以帮助祝你好运