- 型パラメータ:
T
- レスポンス本文型
- すべてのスーパー・インタフェース:
Flow.Subscriber<List<ByteBuffer>>
- 含まれているインタフェース:
- HttpResponse < T>
public static interface HttpResponse.BodySubscriber<T> extends Flow.Subscriber<List<ByteBuffer>>
BodySubscriber
はレスポンス本文のバイトを消費し、上位のJavaタイプに変換します。 クラスBodySubscribers
は、多くの共通本文サブスクライバの実装を提供します。
オブジェクトは、レスポンス本文を含むByteBuffersのリストを公開するHTTPクライアント実装にFlow.Subscriber
<List
<ByteBuffer
>>として機能します。 フロー・リスト内のByteBuffersの順序と同様に、データのフローは、レスポンス本文の厳密に順序付けられた表現です。 サブスクライバに渡されたリストとByteBuffersは、どちらもHTTPクライアントで使用されなくなります。 サブスクライバは、データの受信バッファを高レベルのJavaタイプT
に変換します。
getBody()
メソッドは、レスポンス本文オブジェクトを提供するCompletionStage
<T>
を返します。 CompletionStage
はいつでも入手可能でなければなりません。 完了すると、型T
の性質に依存します。 多くの場合、T
が消費された後に本文全体を表すと、本体の消費が完了した後にCompletionStage
が完了します。 T
がInputStream
などのストリーミング・タイプである場合、コール元のコードはInputStream
を使用してデータを消費するため、本文が読み取られる前に処理が完了します。
- APIのノート:
- 対応するHTTP交換に関連付けられているすべてのリソースが適切にリリースされるようにするには、
onComplete
またはonError
のいずれかが信号されるか、onComplete
が署名できない場合はcancel
の実装が外部データになるようにする必要があります。 レスポンス本文データを使い切る前にcancel
を呼び出すと、基礎となるHTTP接続が閉じられ、後続の操作で再利用されないことがあります。 - 実装上のノート:
- レスポンス本文を含むデータのフローは不変です。 具体的には、これは読取り専用ByteBuffersの変更不可リストのフローです。
- 導入されたバージョン:
- 11
- 関連項目:
HttpResponse.BodySubscribers
-
メソッドのサマリー
修飾子と型 メソッド 説明 CompletionStage<T>
getBody()
終了時にレスポンス本文オブジェクトを返すCompletionStage
を返します。インタフェース java.util.concurrent.Flow.Subscriberで宣言されたメソッド
onComplete, onError, onNext, onSubscribe
-
メソッドの詳細
-
getBody
CompletionStage<T> getBody()終了時にレスポンス本文オブジェクトを返すCompletionStage
を返します。 このメソッドは、他のFlow.Subscriber
メソッドと比較していつでも呼び出すことができ、クライアントexecutor
を使用して呼び出されます。- 戻り値:
- レスポンス本文のCompletionStage
-