インタフェースHttpRequest.BodyPublisher
- すべてのスーパー・インタフェース:
Flow.Publisher<ByteBuffer>
- 含まれているクラス:
HttpRequest
BodyPublisherは、上位レベルのJavaオブジェクトをリクエスト本文として送信するのに適したバイト・バッファのフローに変換します。 クラスBodyPublishersは、多くの共通パブリッシャの実装を提供します。
BodyPublisherインタフェースはFlow.Publisher<ByteBuffer>を拡張しており、BodyPublisherは「バイト・バッファ」のパブリッシャとして機能します。
本文を含むリクエストを送信する場合、HTTPクライアントは、送信リクエスト本文データのフローを受信するためにリクエストBodyPublisherをサブスクライブします。 Flow.SubscriberおよびFlow.Publisherの通常のセマンティックスはHTTPクライアントによって実装され、BodyPublisher実装から期待されます。 各送信リクエストは、リクエスト本文を含むバイト・バッファの順序を示すために、1つのHTTPクライアントSubscriberをBodyPublisherにサブスクライブします。 パブリッシャによって公開された ByteBufferのインスタンスは、パブリッシャによって割り当てられる必要があり、HTTPクライアントにパブリッシュされた後でアクセスできないようにする必要があります。 これらのサブスクリプションは、通常、リクエスト本文が完全に送信されたときに完了し、取消しや終了をエラーによって行うことができます。 何らかの理由でリクエストを再送信する必要がある場合は、以前と同じデータを生成する新規サブスクリプションが作成されます。
「内容の長さ」 of 0をレポートするBodyPublisherは、パブリッシュするデータが効果的にないため、HTTPクライアントによってサブスクライブされないことがあります。
- 導入されたバージョン:
- 11
- 関連項目:
-
メソッドのサマリー
インタフェースjava.util.concurrent.Flow.Publisherで宣言されたメソッド
subscribe
-
メソッドの詳細
-
contentLength
long contentLength()このリクエスト本文のコンテンツ長を返します。 リクエスト本文が送信されない場合はゼロ、固定長コンテンツの場合は0より大きい、未知のコンテンツ長の場合はゼロ未満である可能性があります。このメソッドは、パブリッシャがサブスクライブされる前に呼び出すことができます。 このメソッドは、HTTPクライアントの実装によって複数回呼び出され、毎回同じ定数値を返さなければなりません。
- 戻り値:
- 既知の場合は、このリクエスト本文のコンテンツの長さ
-