1

HttpClientを使用して、xmlデータを返すことになっているサーバーにリクエストを送信しています。このデータはチャンクデータとして返されます。次に、受信したxmlデータをファイルに書き込もうとしています。私が使用するコードを以下に示します。

    HttpEntity entity = response.getEntity();
    InputStream instream = entity.getContent();

        try {
            // do something useful
            InputStreamReader isr = new InputStreamReader(instream);
            FileWriter pw;

            pw = new FileWriter(filename, append);

            OutputStreamWriter outWriter = new OutputStreamWriter(new FileOutputStream(filename, append), "UTF-8");
            BufferedReader rd = new BufferedReader(isr);

            String line = "";
            while ((line = rd.readLine()) != null) {
                // pw.write(line);
                outWriter.write(line);
            }
            isr.close();
            pw.close();
        } finally {
            instream.close();
        }

これにより、次のようなデータがファイルに出力されます。 結果のファイル

このコードは、チャンク化されていないデータに対して機能します。HttpClientを使用してチャンク化されたデータ応答を適切に処理するにはどうすればよいですか。どんな助けでも大歓迎です。

4

1 に答える 1

4

あなたの問題はデータのチャンク化ではないと思います。

XMLデータはプレーンテキストデータです。チャンクとは、次々に転送されるいくつかの部分に分割されることを意味します。したがって、各チャンクには表示可能なプレーンテキストのxmlデータが含まれている必要がありますが、データの図に示されているように、明らかにそうではありません。

コンテンツがgzipで圧縮されてエンコードされているか、プレーンテキストのXMLではなくバイナリでエンコードされたXML(WBXMLなど)である可能性があります。

送信されたサーバー応答ヘッダーから確認できる具体的なタイプ、特にそれに含まれる使用済みのmimeタイプ。

于 2012-08-21T15:19:13.317 に答える