web-dev-qa-db-ja.com

Android)でHttpResponseからヘッダーを取得します

AndroidのHttpResponseexecute()メソッドによって返されるHttpClientオブジェクトを使用して、特定のヘッダーの値を取得する方法はありますか?

12
Radu Stoenescu

特定のヘッダーを取得する方法はいくつかあります。 HttpResponseHttpMessage を継承し、次のヘッダー取得メソッドを提供します。

あなたの場合、おそらくgetFirstHeader(String)が必要です。ヘッダーには複数の値を含めることができるため、_Header[]_配列はgetHeaders()から返されます。ヘッダーが1つしかない場合は、getFirstHeader(String)で十分です。

22
Rob Hruska

私はいつもこのコードを使います

最初はそうします

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

今、私はどんな価値も得ることができます

多分誰かが幸運を助けることができます

HttpResponse.getHeaders()メソッドを試しましたか?

2
Michael

以下の方法を試してください:-

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/

1
duggu

ヘッダーを印刷したり、ヘッダーにCookieを印刷したりするには、HttpResponse.getAllHeaders()を試してください。

response.getHeaders("Set-Cookie")
0
user366584