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++;
}
Pingback: Life is Music♪ ~CHORD Fusion~