モジュール java.net.http
パッケージ java.net.http

インタフェース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が完了します。 TInputStreamなどのストリーミング・タイプである場合、コール元のコードはInputStreamを使用してデータを消費するため、本文が読み取られる前に処理が完了します。

APIのノート:
対応するHTTP交換に関連付けられているすべてのリソースが適切にリリースされるようにするには、onCompleteまたはonErrorのいずれかが信号されるか、onCompleteが署名できない場合はcancelの実装が外部データになるようにする必要があります。 レスポンス本文データを使い切る前にcancelを呼び出すと、基礎となるHTTP接続が閉じられ、後続の操作で再利用されないことがあります。
実装上のノート:
レスポンス本文を含むデータのフローは不変です。 具体的には、これは読取り専用ByteBuffersの変更不可リストのフローです。
導入されたバージョン:
11
関連項目:
HttpResponse.BodySubscribers
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    終了時にレスポンス本文オブジェクトを返すCompletionStageを返します。

    インタフェース java.util.concurrent.Flow.Subscriberで宣言されたメソッド

    onComplete, onError, onNext, onSubscribe
  • メソッドの詳細

    • getBody

      CompletionStage<T> getBody()
      終了時にレスポンス本文オブジェクトを返すCompletionStageを返します。 このメソッドは、他のFlow.Subscriberメソッドと比較していつでも呼び出すことができ、クライアントexecutorを使用して呼び出されます。
      戻り値:
      レスポンス本文のCompletionStage