7

http パケットをデコードしています。そして、チャンクの問題という問題に直面しました。http パケットを取得すると、ヘッダーと本文があります。transefer-encoding がチャンクされている場合、どうすればよいかわかりません。

JAVA でデータをデチャンクするための便利な API またはクラスはありますか?

また、http のデコードについて経験のある方がいらっしゃいましたら、方法を教えてください。

4

4 に答える 4

12

Apache HttpComponents Clientのような完全な HTTP クライアントを使用するか、提供されている Java SE だけを使用してくださいjava.net.URLConnection(ミニチュートリアルはこちら)。どちらも完全に透過的に処理し、「通常の」InputStreamバックを提供します。HttpClient には、装飾するだけの も付属してChunkedInputStreamいますInputStream

このためのライブラリを自作することを本当に主張する場合は、次のようなクラスを作成し、それにChunkedInputStream extends InputStream応じてロジックを記述することをお勧めします。このウィキペディアの記事で、解析方法の詳細を確認できます。

于 2010-09-15T12:46:31.390 に答える
1

シンプルな API を探している場合は、Jodd Httpライブラリ ( http://jodd.org/doc/http.html ) を試してください。チャンク転送エンコーディングを処理し、本体全体を文字列として取得します。

ドキュメントから:

HttpRequest httpRequest = HttpRequest.get("http://jodd.org");
HttpResponse response = httpRequest.send();

System.out.println(response);
于 2014-05-30T07:26:28.640 に答える
1

Apache HttpComponents

ああ、クライアント側について話しているのであれば、HttpUrlConnectionもこれを行います。

于 2010-09-15T12:45:07.623 に答える