httpclientでは、httpentityを文字列に変える最もエレガントな/正しい方法は何ですか?

StackOverflow https://stackoverflow.com/questions/2043580

  •  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から。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top