インタフェースHttpResponse.BodySubscriber<T>
- 型パラメータ:
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
- 関連項目:
-
メソッドのサマリー
インタフェースjava.util.concurrent.Flow.Subscriberで宣言されたメソッド
onComplete, onError, onNext, onSubscribe
-
メソッドの詳細
-
getBody
CompletionStage<T> getBody()完了するとレスポンス本文オブジェクトを返すCompletionStageを返します。 このメソッドは、他のFlow.Subscriberメソッドと比較していつでも呼び出すことができ、クライアントexecutorを使用して呼び出されます。- 戻り値:
- レスポンス本文のCompletionStage
-