2012年9月3日月曜日

[android]DefaultHttpClientで取得した結果を簡単にStringやbyte[]に変換する

DefaultHttpClientでHTTP通信し、その結果を受け取るパターンというのは結構あります。 そのアウトプット(xmlやjson)をpullParser等に食わせるときはいいんですが、これを文字列やbyte[]に変換しようとすると、定型のめんどくさい処理を実装する必要があります。 InputStreamをバッファに読み込み、StringWriterやByteArrayOutputStreamに出力する的な感じ。
Androidでは、これを簡単にやってくれるメソッドがあることを最近知りました。 スタティックメソッドなんですが、以下の通りです。
  • EntityUtils.toString
  • EntityUtils.toByteArray

引数にHttpEntity を渡すだけでそれらしく処理してくれます。チョー便利。コードで書くとこんな感じ。
 String data = EntityUtils.toString(response.getEntity());