-
- 型パラメータ:
T
- レスポンス本文型
- すべてのスーパー・インタフェース:
Flow.Subscriber<List<ByteBuffer>>
- 含まれているクラス:
- HttpResponse < T>
public static interface HttpResponse.BodySubscriber<T> extends Flow.Subscriber<List<ByteBuffer>>
レスポンス主体のサブスクライバ。
インキュベーション機能。将来のリリースで削除されます。このオブジェクトは、HTTPクライアントの実装に対して
Flow.Subscriber
<List
<ByteBuffer
>>として動作し、レスポンス本文を含むByteBuffersの変更不可能なリストを公開します。 フロー・リスト内のByteBuffersの順序と同様に、データのフローは、レスポンス本文の厳密に順序付けられた表現です。 いったんサブスクライバに渡されたリストとByteBuffersは、HTTPクライアントによって使用されなくなりました。 サブスクライバは、受信したデータのバッファをユーザー定義のオブジェクト型T
に変換します。getBody()
メソッドは、レスポンス本文オブジェクトを提供するCompletionStage
<T>
を返します。CompletionStage
はいつでも入手可能でなければなりません。 完了すると、型T
の性質に依存します。 多くの場合、T
が読み込まれた後に本文全体を表すとき、本文が読み込まれた後で完了します。T
がInputStream
のようなストリーミング型の場合、本文が読み込まれる前に完了します。なぜなら、呼び出しコードがデータを消費するためです。- APIの注:
- 対応する交換に関連付けられたすべてのリソースが確実に解放されるように、
BodySubscriber
の実装は、onComplete
またはonError
が通知されるまでrequestのデータを確実に保持する必要があります。 データを使い切る前にcancel
を呼び出すと、基になるHTTP接続が閉じられ、後続の操作で再利用されなくなる可能性があります。
-
-
メソッドのサマリー
「すべてのメソッド」「静的メソッド」「インスタンス・メソッド」「抽象メソッド」 修飾子と型 メソッド 説明 static HttpResponse.BodySubscriber<byte[]>
asByteArray()
レスポンス本文をバイト配列として格納するBodySubscriber
を返します。static HttpResponse.BodySubscriber<Void>
asByteArrayConsumer(Consumer<Optional<byte[]>> consumer)
提供されたOptional<byte[]>
のコンシューマに着信する本文データを提供するBodySubscriber
を返します。static HttpResponse.BodySubscriber<Path>
asFile(Path file)
指定された名前でオープンされたファイルにレスポンス本文を格納するBodySubscriber
を返します。static HttpResponse.BodySubscriber<Path>
asFile(Path file, OpenOption... openOptions)
与えられたオプションと名前でオープンされたファイルにレスポンス本文を格納するBodySubscriber
を返します。static HttpResponse.BodySubscriber<InputStream>
asInputStream()
レスポンス本文をInputStream
としてストリームするBodySubscriber
を返します。static HttpResponse.BodySubscriber<String>
asString(Charset charset)
指定されたCharset
を使用して変換されたString
としてレスポンス本文を格納する本文サブスクライバを返します。static <T> HttpResponse.BodySubscriber<T>
buffering(HttpResponse.BodySubscriber<T> downstream, int bufferSize)
特定のダウンストリーム・サブスクライバにデータを配信する前にデータをバッファリングするBodySubscriber
を返します。static <U> HttpResponse.BodySubscriber<U>
discard(U value)
レスポンス本文を破棄するレスポンス・サブスクライバを返します。static <S extends Flow.Subscriber<? super List<ByteBuffer>>>
HttpResponse.BodySubscriber<Void>fromSubscriber(S subscriber)
すべてのレスポンス本文を指定されたFlow.Subscriber
に転送する本文サブスクライバを返します。static <S extends Flow.Subscriber<? super List<ByteBuffer>>,T>
HttpResponse.BodySubscriber<T>fromSubscriber(S subscriber, Function<S,T> finisher)
すべてのレスポンス本文を指定されたFlow.Subscriber
に転送する本文サブスクライバを返します。CompletionStage<T>
getBody()
終了時にレスポンス本文オブジェクトを返すCompletionStage
を返します。-
インタフェース java.util.concurrent.Flow.Subscriberで宣言されたメソッド
onComplete, onError, onNext, onSubscribe
-
-
-
-
メソッドの詳細
-
getBody
CompletionStage<T> getBody()
終了時にレスポンス本文オブジェクトを返すCompletionStage
を返します。- 戻り値:
- レスポンス本文のCompletionStage
-
fromSubscriber
static <S extends Flow.Subscriber<? super List<ByteBuffer>>> HttpResponse.BodySubscriber<Void> fromSubscriber(S subscriber)
すべてのレスポンス本文を指定されたFlow.Subscriber
に転送する本文サブスクライバを返します。 返された本文サブスクライバのgetBody()完了ステージ} は、指定されたサブスクライバonComplete
またはonError
の1つが呼び出された後に完了します。- APIの注:
- このメソッドは、
BodySubscriber
とFlow.Subscriber
の間のアダプタとして使用できます。 - 型パラメータ:
S
- サブスクライバのタイプ- パラメータ:
subscriber
- サブスクライバ- 戻り値:
- 本文サブスクライバ
-
fromSubscriber
static <S extends Flow.Subscriber<? super List<ByteBuffer>>,T> HttpResponse.BodySubscriber<T> fromSubscriber(S subscriber, Function<S,T> finisher)
すべてのレスポンス本文を指定されたFlow.Subscriber
に転送する本文サブスクライバを返します。 返された本文サブスクライバのgetBody()完了ステージ} は、指定されたサブスクライバonComplete
またはonError
の1つが呼び出された後に完了します。指定された
finisher
関数は、指定されたサブスクライバonComplete
が呼び出された後に適用されます。finisher
関数は、指定されたサブスクライバとともに起動され、レスポンス本文として設定された値を返します。- APIの注:
- このメソッドは、
BodySubscriber
とFlow.Subscriber
の間のアダプタとして使用できます。 - 型パラメータ:
S
- サブスクライバのタイプT
- レスポンス本文のタイプ- パラメータ:
subscriber
- サブスクライバfinisher
- サブスクライバが完了した後に適用される機能- 戻り値:
- 本文サブスクライバ
-
asString
static HttpResponse.BodySubscriber<String> asString(Charset charset)
指定されたCharset
を使用して変換されたString
としてレスポンス本文を格納する本文サブスクライバを返します。このサブスクライバを使用する
HttpResponse
は、レスポンス全体を読み取った後に使用できます。- パラメータ:
charset
- 文字列を変換する文字セット- 戻り値:
- 本文サブスクライバ
-
asByteArray
static HttpResponse.BodySubscriber<byte[]> asByteArray()
レスポンス本文をバイト配列として格納するBodySubscriber
を返します。このサブスクライバを使用する
HttpResponse
は、レスポンス全体を読み取った後に使用できます。- 戻り値:
- 本文サブスクライバ
-
asFile
static HttpResponse.BodySubscriber<Path> asFile(Path file, OpenOption... openOptions)
与えられたオプションと名前でオープンされたファイルにレスポンス本文を格納するBodySubscriber
を返します。 ファイルは、本文が読み込まれる直前にFileChannel.open
を使用して、指定されたオプションで開かれます。 スローされた例外は、必要に応じてHttpClient::send
またはHttpClient::sendAsync
から返されるか、スローされます。このサブスクライバを使用する
HttpResponse
は、レスポンス全体を読み取った後に使用できます。- パラメータ:
file
- 本文を格納するファイルopenOptions
- ファイルを開くためのオプションのリスト- 戻り値:
- 本文サブスクライバ
- 例外:
SecurityException
- セキュリティ・マネージャがインストールされていて、ファイルにwrite access
が拒否されている場合。DELETE_ON_CLOSE
オプションでファイルが開かれた場合は、checkDelete
メソッドが呼び出されて削除アクセスがチェックされます。
-
asFile
static HttpResponse.BodySubscriber<Path> asFile(Path file)
指定された名前でオープンされたファイルにレスポンス本文を格納するBodySubscriber
を返します。 標準オープン・オプションCREATE
とWRITE
でasFile
を呼び出すのと同じ効果がありますこのサブスクライバを使用する
HttpResponse
は、レスポンス全体を読み取った後に使用できます。- パラメータ:
file
- 本文を格納するファイル- 戻り値:
- 本文サブスクライバ
- 例外:
SecurityException
- セキュリティ・マネージャがインストールされていて、ファイルへのwrite access
を拒否した場合
-
asByteArrayConsumer
static HttpResponse.BodySubscriber<Void> asByteArrayConsumer(Consumer<Optional<byte[]>> consumer)
提供されたOptional<byte[]>
のコンシューマに着信する本文データを提供するBodySubscriber
を返します。Optional
が空の場合、Consumer.accept()
の各呼び出しには、空のOptional
が含まれます。ただし、すべての本文データが読み込まれた後の最終呼び出しを除きます。このサブスクライバを使用する
HttpResponse
は、レスポンス全体を読み取った後に使用できます。- パラメータ:
consumer
- バイト配列のコンシューマ- 戻り値:
- a BodySubscriber
-
asInputStream
static HttpResponse.BodySubscriber<InputStream> asInputStream()
レスポンス本文をInputStream
としてストリームするBodySubscriber
を返します。このサブスクライバを使用する
HttpResponse
は、レスポンス・ヘッダーが読み込まれた直後に利用でき、本文全体が処理されるまで待つ必要はありません。 レスポンス本文は、InputStream
から直接読み取ることができます。- APIの注:
- 対応するチェンジに関連付けられたすべてのリソースが適切に解放されるようにするには、呼び出し側はEOFに達するまですべてのバイトを読み取るか、
InputStream.close()
を呼び出すことができない場合は呼び出します。 ストリームを使い切る前にclose
を呼び出すと、基になるHTTP接続が閉じられ、後続の操作で再利用されなくなる可能性があります。 - 戻り値:
- レスポンス本文を
InputStream
としてストリームする本文 サブスクライバ。
-
discard
static <U> HttpResponse.BodySubscriber<U> discard(U value)
レスポンス本文を破棄するレスポンス・サブスクライバを返します。 指定された値は、HttpResponse.body()
から返される値です。- 型パラメータ:
U
- レスポンス本文の型- パラメータ:
value
- HttpResponse.body()から返される値は、null
- 戻り値:
- a
BodySubscriber
-
buffering
static <T> HttpResponse.BodySubscriber<T> buffering(HttpResponse.BodySubscriber<T> downstream, int bufferSize)
特定のダウンストリーム・サブスクライバにデータを配信する前にデータをバッファリングするBodySubscriber
を返します。 サブスクライバは、onCompleteが呼び出される直前に、最後の呼び出しを除いて、buffersize
バイトのデータをダウンストリームonNextメソッドの各呼び出しに渡すことを保証します。onNext
の最後の呼び出しには、buffersize
バイトより少ないバイト数が含まれている可能性があります。返されたサブスクライバは、
getBody()
メソッドをダウンストリーム・サブスクライバに委譲します。- パラメータ:
downstream
- ダウンストリーム・サブスクライバbufferSize
- バッファ・サイズ- 戻り値:
- バッファリング・ボディ・サブスクライバ
- 例外:
IllegalArgumentException
-bufferSize <= 0
の場合
-
-