httpclientでは、httpentityを文字列に変える最もエレガントな/正しい方法は何ですか?
-
19-09-2019 - |
質問
を使用してWebページを取得しています Apache httpComponents Java Library. 。結果を接続した後、私は取得します HttpEntity
メソッドがあります getContent()
返品します InputStream
また、方法もあります writeTo()
出力ストリームに書き込みます。
結果を抽出するための文字列に変えたいです。これを行う最もエレガントな(そして安全な)方法は何ですか?
いくつかの可能な解決策:
- に書きます
ByteArrayOutputStream
そして、それらのバイトを文字列コンストラクターを使用して文字列に変換します - inputStreamReaderを使用してストリームから直接読み取り、StringBuilderに入れます
これらはどちらも少し醜いと感じます。これらのいずれかを選択することをお勧めしますか?
解決
どうですか(擬似):
BasicResponseHandler handler = new org.apache.http.impl.client.BasicResponseHandler ();
String str = httpClient.execute(request, handler);
この場合、自分で例外を処理する必要があります。
他のヒント
system.out.println(entityutils.toString(httpresponse.getEntity()));
醜いかもしれませんが、それが唯一の方法だと思います。使用できます ioutils.toString() ただし、独自のコードを書く必要はありませんが、Commons-Ioから。
所属していません StackOverflow