http パケットをデコードしています。そして、チャンクの問題という問題に直面しました。http パケットを取得すると、ヘッダーと本文があります。transefer-encoding がチャンクされている場合、どうすればよいかわかりません。
JAVA でデータをデチャンクするための便利な API またはクラスはありますか?
また、http のデコードについて経験のある方がいらっしゃいましたら、方法を教えてください。
http パケットをデコードしています。そして、チャンクの問題という問題に直面しました。http パケットを取得すると、ヘッダーと本文があります。transefer-encoding がチャンクされている場合、どうすればよいかわかりません。
JAVA でデータをデチャンクするための便利な API またはクラスはありますか?
また、http のデコードについて経験のある方がいらっしゃいましたら、方法を教えてください。
Apache HttpComponents Clientのような完全な HTTP クライアントを使用するか、提供されている Java SE だけを使用してくださいjava.net.URLConnection
(ミニチュートリアルはこちら)。どちらも完全に透過的に処理し、「通常の」InputStream
バックを提供します。HttpClient には、装飾するだけの も付属してChunkedInputStream
いますInputStream
。
このためのライブラリを自作することを本当に主張する場合は、次のようなクラスを作成し、それにChunkedInputStream extends InputStream
応じてロジックを記述することをお勧めします。このウィキペディアの記事で、解析方法の詳細を確認できます。
シンプルな API を探している場合は、Jodd Httpライブラリ ( http://jodd.org/doc/http.html ) を試してください。チャンク転送エンコーディングを処理し、本体全体を文字列として取得します。
ドキュメントから:
HttpRequest httpRequest = HttpRequest.get("http://jodd.org");
HttpResponse response = httpRequest.send();
System.out.println(response);
Apache HttpComponents
ああ、クライアント側について話しているのであれば、HttpUrlConnectionもこれを行います。