Получить заголовок от HttpResponse в Android - PullRequest
10 голосов
/ 21 июня 2011

Есть ли способ получить значение определенного заголовка, используя объект HttpResponse, возвращаемый методом HttpClient execute() в Android?

Ответы [ 5 ]

22 голосов
/ 21 июня 2011

Есть несколько способов получить определенные заголовки. HttpResponse наследуется от HttpMessage , который предоставляет следующие методы извлечения заголовка:

В вашем случае вы, вероятно, хотите getFirstHeader(String). Заголовки могут содержать несколько значений, поэтому массив Header[] возвращается из getHeaders(); если вы ожидаете, что будет только один заголовок, getFirstHeader(String) должно быть достаточно.

6 голосов
/ 17 августа 2014

Я всегда использую этот код

Изначально я делаю так

 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;
}

СейчасЯ могу получить любое значение

Может быть, кто-то может помочь Удачи

2 голосов
/ 21 июня 2011

Вы пробовали HttpResponse.getHeaders() метод?

0 голосов
/ 27 декабря 2013

попробуйте следующий метод: -

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/

0 голосов
/ 04 ноября 2013

Пожалуйста, попробуйте HttpResponse.getAllHeaders() для печати заголовков и для печати файлов cookie в заголовках.

response.getHeaders("Set-Cookie")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...