モジュール 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タイプに変換します。 クラスBodySubscriberは、多くの共通本文サブスクライバの実装を提供します。

    オブジェクトは、レスポンス本文を含む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
    • メソッドの詳細

      • getBody

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