5

私は持っている

 HttpResponse response = httpclient.execute(httpget);

私のメソッドは、デバイスと PC のソケットを介して byte[] を転送できます。

4

3 に答える 3

5

それは簡単ではない。

単に応答の本文が必要な場合は、これを実行してそれを取得できます

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    response.getEntity().writeTo(baos);
    byte[] bytes = baos.toByteArray();

HttpResponse次に、次のようにコンテンツを別のオブジェクトに追加できます。

    HttpResponse response = ...
    response.setEntity(new ByteArrayEntity(bytes));

しかし、元の応答で他のすべてのものを必要とする可能性が高いため、これではおそらく十分ではありません。たとえば、ステータス行とヘッダー (元のコンテンツ タイプと長さを含む)。

応答全体を処理したい場合は、次の 2 つの選択肢があるようです。

  • 応答を個別に選択して (ステータス ラインの取得、ヘッダーの繰り返しなど)、手動でシリアル化し、反対側で逆の処理を行うことができます。

  • HttpResponseWriterシリアライズを実行HttpResponseParserし、反対側で応答を再構築するために使用できます。これについては、こちらで説明しています。

于 2013-07-19T09:51:36.850 に答える