Get header from HttpResponse in Android

你说的曾经没有我的故事 提交于 2019-12-18 13:07:45

问题


Is there a way to get the value of a specific header using the HttpResponse object returned by the HttpClient execute() method in Android?


回答1:


There are several ways to get specific headers. HttpResponse inherits from HttpMessage, which provides the following header retrieval methods:

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

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.




回答2:


I always use this code

Initially, I do so

 Header[] headers = response.getAllHeaders();

Next, I'm using a simple method converts in 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




回答3:


Have you tried HttpResponse.getHeaders() method?




回答4:


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/




回答5:


Please try HttpResponse.getAllHeaders() for printing headers and for printing cookie in Headers.

response.getHeaders("Set-Cookie")


来源:https://stackoverflow.com/questions/6424611/get-header-from-httpresponse-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!