Oddwit


ぬるぽの記録 HttpURLConnection.getHeaderFieldKey(0)

Posted in Java by マルコ on the December 8th, 2007

HttpURLConnectionクラスでHTTP接続をし、そのレスポンスヘッダをハッシュテーブルに格納しようとしてぬるぽが出た。

元のコード:

// レスポンスヘッダを取得
int i=0;
String key, value;
while ((value = urlconn.getHeaderField(i))!=null){
	responseHeaders.put(urlconn.getHeaderFieldKey(i), value);
	i++;
}

原因は、HttpURLConnectionクラスのgetHeaderFieldKey(0)でnullが返ってくること。キーnullに対し200 OKなどのHTTPレスポンスコードとメッセージが返される仕様になっている。そのままハッシュテーブルにキーnullで値を挿入しようとしたためぬるぽが出てしまっていた。

修正後のコード:

// レスポンスヘッダを取得
int i=0;
String key, value;
while ((value = urlconn.getHeaderField(i))!=null){
	if ((key = urlconn.getHeaderFieldKey(i))!=null){
		responseHeaders.put(key, value);
	}
	i++;
}

One Response to 'ぬるぽの記録 HttpURLConnection.getHeaderFieldKey(0)'

Subscribe to comments with RSS or TrackBack to 'ぬるぽの記録 HttpURLConnection.getHeaderFieldKey(0)'.


  1. on December 10th, 2007 at 01:13

    API…

    “今日は巷で話題に挙がっているGoogle Chart APIを使ってみたいと思います。

    何のデータを使ってグラフを作ろうか迷ったのですが、
    毎日携帯にメモしてる家 (more…)

Leave a Reply