一度にボディを生成するリクエストボディを送信したいのですが、事前に全体の長さを知りません。つまり、チャンクされたリクエストを送信する必要があります。
これを行う方法が見つかりません。
2 つのタイプの接続の主な違いは、通常の、ただし本質的にブロッキング クラスを使用して、インバウンドおよびアウトバウンド コンテンツのストリームを表すことができないこと
java.io.InputStream
ですjava.io.OutputStream
。HttpCore NIO は、非同期コンテンツ転送のプロセスを処理するためのインターフェースを提供ContentEncoder
します。ContentDecoder
...
非ブロッキング HTTP 接続は、コンテンツ エンティティが完全に転送されたとマークされるまで、出力イベントを発生させます。
ContentEncoder encoder = <...> // Prepare output data ByteBuffer src = ByteBuffer.allocate(2048); // Write data out encoder.write(src); // Mark content entity as fully transferred when done encoder.complete();
を見ましたorg.apache.http.nio.conn.ClientAsyncConnection
が、出力イベントが発生している場所がわかりません。
ファイル送信の例は見つかりますが、やりたいコンテンツ生成の例はありません。
を使用してチャンク化されたストリーミング リクエストを送信するにはどうすればよいAsyncHttpClient
ですか?