ぬるぽの記録 HttpURLConnection.getHeaderFieldKey(0)
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++; }
on December 10th, 2007 at 01:13
API…
“今日は巷で話題に挙がっているGoogle Chart APIを使ってみたいと思います。
何のデータを使ってグラフを作ろうか迷ったのですが、
毎日携帯にメモしてる家 (more…)