Programming Style

メニュー

初心者がアプリ開発者になるためのプログラミング学習サイト

[Android] HttpURLConnection:HTTPレスポンスヘッダの一覧を取得する

android-common-top

ここではHttpURLConnectionを使ってHTTPレスポンスヘッダの一覧を取得する方法について説明します。

 

広 告
 

目次

前提条件

動作確認端末

  • Google Nexus 7 – 5.1.1 – API22(実機)

1. HTTPレスポンスヘッダの一覧を取得する

 

ここではHTTPレスポンスヘッダの一覧を取得する方法について説明します。HTTPリクエストを送信し、レスポンスを取得するまでの手順については「HttpURLConnection:GETリクエストでテキストを取得する」を参照ください。

 

HTTPレスポンスのヘッダ一覧を取得するためには、URLConnection#connect()を実行した後に、以下のコードを実行します。

HTTPレスポンスのヘッダ一覧をログ出力する

final Map<String, List> headers = con.getHeaderFields();
for (String key : headers.keySet()) {
    final List valueList = headers.get(key);
    final StringBuilder values = new StringBuilder();
    for (String value : valueList) {
        values.append(value + " ");
    }
    Log.i(getClass().getSimpleName(), key + " : " + values.toString());
}

URLConnection#getHeaderFields()を使用するとヘッダ一覧がMap<String, List<String>>型で取得できます。取得したMapのキーにはヘッダのキー名が、Mapのバリューにはヘッダの値が格納されています。

 

上記コードを実行するうと以下のような結果が得られます。

ヘッダ一覧の取得例

I/HttpGetTask: null : HTTP/1.1 200 OK 
I/HttpGetTask: Accept-Ranges : bytes 
I/HttpGetTask: Connection : Keep-Alive 
I/HttpGetTask: Content-Length : 307 
I/HttpGetTask: Content-Type : text/html 
I/HttpGetTask: Date : Mon, 25 Jan 2016 15:33:32 GMT 
I/HttpGetTask: ETag : "ac3ad1-133-5285002bd2c00" 
I/HttpGetTask: Keep-Alive : timeout=5 max=100 
I/HttpGetTask: Last-Modified : Sat, 02 Jan 2016 01:43:12 GMT 
I/HttpGetTask: Server : Apache/2.2.29 (Unix) mod_wsgi/3.5 Python/2.7.10 PHP/5.6.10 mod_ssl/2.2.29 OpenSSL/0.9.8zg DAV/2 mod_fastcgi/2.4.6 mod_perl/2.0.9 Perl/v5.22.0 
I/HttpGetTask: X-Android-Received-Millis : 1453735995324 
I/HttpGetTask: X-Android-Response-Source : NETWORK 200 
I/HttpGetTask: X-Android-Sent-Millis : 1453735995312 

 

 

 

 

2. 参考URL

 

HttpURLConnection | Android Developers

http://developer.android.com/intl/ja/reference/java/net/HttpURLConnection.html

 

広 告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です