在Android中从HttpResponse获取头信息

12
有没有办法在Android中使用HttpClientexecute()方法返回的HttpResponse对象中获取特定标头的值?请注意,保留HTML标记。
5个回答

22

有几种方法可以获取特定的头信息。HttpResponse 继承自 HttpMessage,它提供了以下头信息检索方法:

在您的情况下,您可能需要使用 getFirstHeader(String)。头信息可以包含多个值,因此从 getHeaders() 返回 Header[] 数组;如果您只期望存在单个头信息,则应该使用 getFirstHeader(String)


1
这些函数都会返回 Header,而不是 String - Parampal Pooni
1
看起来自回答以来API已经改变了。http://developer.android.com/reference/org/apache/http/Header.html有一个`GetValue()`。 - Rob Hruska
@RobHruska 确实。现在使用 httpURLConnection.getHeaderField("Location") - shkschneider

7

我经常使用这段代码

起初,我这样做

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

现在我可以获取任何值

也许有人能够帮助 祝好运


2

尝试以下方法:

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/


2

你尝试过使用 HttpResponse.getHeaders() 方法吗?


我在想是否有一种方法可以获取特定的标题,而无需遍历所有标题。 - Radu Stoenescu

0
请尝试使用HttpResponse.getAllHeaders()打印头信息,并在头信息中打印cookie。
response.getHeaders("Set-Cookie")

获取重定向URL的下一步是什么? - Jeff Bootsholz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接