-
- すべてのスーパー・インタフェース:
Flow.Publisher<ByteBuffer>
- 含まれているクラス:
- HttpRequest
public static interface HttpRequest.BodyPublisher extends Flow.Publisher<ByteBuffer>
高水準のJavaオブジェクトをリクエスト本体として送信するのに適したバイト・バッファのフローに変換するパブリッシャ。
インキュベーション機能。将来のリリースで削除されます。BodyPublisher
クラスはFlow.Publisher<ByteBuffer>
を実装しています。これは、BodyPublisher
が「バイト・バッファ」のパブリッシャとして機能することを意味します。HTTPクライアント実装は、発信データ・バッファのフローを受信するためにパブリッシャにサブスクライブします。
Flow.Subscriber
とFlow.Publisher
の通常のセマンティクスはライブラリによって実装され、パブリッシャの実装から期待されます。 それぞれの発信リクエストは、リクエスト本文を含むバイト・バッファのシーケンスを提供するために、BodyPublisher
に加入する1つのSubscriber
をもたらす。 パブリッシャによって発行されたByteBuffer
のインスタンスは、パブリッシャによって割り当てられなければならず、図書館に引き渡された後にアクセスされてはなりません。 これらのサブスクリプションは、リクエストが完全に送信されたときに正常に完了し、エラーによって早期に取消または終了することができます。 何らかの理由でリクエストを再送信する必要がある場合、以前と同じデータを生成すると予想される新しいサブスクリプションが作成されます。0
の「内容の長さ」を報告するパブリッシャは、公開するデータが事実上存在しないため、HTTPクライアント実装によってサブスクライブされないことがあります。
-
-
メソッドのサマリー
「すべてのメソッド」「静的メソッド」「インスタンス・メソッド」「抽象メソッド」 修飾子と型 メソッド 説明 long
contentLength()
このリクエスト本文のコンテンツ長を返します。static HttpRequest.BodyPublisher
fromByteArray(byte[] buf)
本文が指定されたバイト配列であるリクエストボディ・パブリッシャを返します。static HttpRequest.BodyPublisher
fromByteArray(byte[] buf, int offset, int length)
指定されたoffset
から始まるlength
バイトの指定されたバイト配列の内容を本文として持つリクエストボディ・パブリッシャを返します。static HttpRequest.BodyPublisher
fromByteArrays(Iterable<byte[]> iter)
バイト配列のIterable
からデータを取得するリクエストボディ・パブリッシャ。static HttpRequest.BodyPublisher
fromFile(Path path)
ファイルの内容からデータを取得するリクエスト・ボディ・パブリッシャ。static HttpRequest.BodyPublisher
fromInputStream(Supplier<? extends InputStream> streamSupplier)
InputStream
からデータを読み取るリクエスト・ボディ・パブリッシャ。static HttpRequest.BodyPublisher
fromPublisher(Flow.Publisher<? extends ByteBuffer> publisher)
指定されたFlow.Publisher
から本文が取得されたリクエスト・ボディ・パブリッシャを返します。static HttpRequest.BodyPublisher
fromPublisher(Flow.Publisher<? extends ByteBuffer> publisher, long contentLength)
指定されたFlow.Publisher
から本文が取得されたリクエスト・ボディ・パブリッシャを返します。static HttpRequest.BodyPublisher
fromString(String body)
UTF_8
文字セットを使用して変換された、指定されたString
の本文を持つリクエスト本体パブリッシャを返します。static HttpRequest.BodyPublisher
fromString(String s, Charset charset)
指定された文字セットを使用して変換された、指定されたString
の本文を持つリクエスト・ボディ・パブリッシャを返します。static HttpRequest.BodyPublisher
noBody()
リクエスト本文を送信しないリクエストボディ・パブリッシャ。-
インタフェース java.util.concurrent.Flow.Publisherで宣言されたメソッド
subscribe
-
-
-
-
メソッドの詳細
-
fromPublisher
static HttpRequest.BodyPublisher fromPublisher(Flow.Publisher<? extends ByteBuffer> publisher)
指定されたFlow.Publisher
から本文が取得されたリクエスト・ボディ・パブリッシャを返します。 返されたリクエストボディ・パブリッシャのコンテンツ長は不明です。- APIの注:
- このメソッドは、
BodyPublisher
とFlow.Publisher
の間のアダプタとして使用できます。この場合、パブリッシャが公開するリクエスト本文の量は不明です。 - パラメータ:
publisher
- 本文の発行責任者- 戻り値:
- a BodyPublisher
-
fromPublisher
static HttpRequest.BodyPublisher fromPublisher(Flow.Publisher<? extends ByteBuffer> publisher, long contentLength)
指定されたFlow.Publisher
から本文が取得されたリクエスト・ボディ・パブリッシャを返します。 返されたリクエストボディ・パブリッシャは、指定されたコンテンツ長を持ちます。与えられた
contentLength
は正の数で、publisher
が公開しなければならない正確なバイト数を表します。- APIの注:
- このメソッドは、
BodyPublisher
とFlow.Publisher
の間のアダプタとして使用できます。BodyPublisher
では、パブリッシャがパブリッシュするリクエスト本文の量がわかります。 - パラメータ:
publisher
- 本文の発行責任者contentLength
- パブリッシャが公開する正確なバイト数を表す正の数- 戻り値:
- a BodyPublisher
- 例外:
IllegalArgumentException
- コンテンツの長さが正でない場合
-
fromString
static HttpRequest.BodyPublisher fromString(String body)
UTF_8
文字セットを使用して変換された、指定されたString
の本文を持つリクエスト本体パブリッシャを返します。- パラメータ:
body
- 本文を含むString- 戻り値:
- a BodyPublisher
-
fromString
static HttpRequest.BodyPublisher fromString(String s, Charset charset)
指定された文字セットを使用して変換された、指定されたString
の本文を持つリクエスト・ボディ・パブリッシャを返します。- パラメータ:
s
- 本文を含むStringcharset
- 文字列をバイトに変換する文字セット- 戻り値:
- a BodyPublisher
-
fromInputStream
static HttpRequest.BodyPublisher fromInputStream(Supplier<? extends InputStream> streamSupplier)
InputStream
からデータを読み取るリクエスト・ボディ・パブリッシャ。InputStream
のSupplier
は、コンテンツがバッファされていないため、リクエストを繰り返す必要がある場合に使用されます。Supplier
は、その後の試行でnull
を返します。この場合、リクエストは失敗します。- パラメータ:
streamSupplier
- オープンなInputStreamのサプライヤ- 戻り値:
- a BodyPublisher
-
fromByteArray
static HttpRequest.BodyPublisher fromByteArray(byte[] buf)
本文が指定されたバイト配列であるリクエストボディ・パブリッシャを返します。- パラメータ:
buf
- 本文を含むバイト配列- 戻り値:
- a BodyPublisher
-
fromByteArray
static HttpRequest.BodyPublisher fromByteArray(byte[] buf, int offset, int length)
指定されたoffset
から始まるlength
バイトの指定されたバイト配列の内容を本文として持つリクエストボディ・パブリッシャを返します。- パラメータ:
buf
- 本文を含むバイト配列offset
- 最初のバイトのオフセットlength
- 使用するバイト数- 戻り値:
- a BodyPublisher
- 例外:
IndexOutOfBoundsException
- サブ範囲が範囲外であると定義されている場合
-
fromFile
static HttpRequest.BodyPublisher fromFile(Path path) throws FileNotFoundException
ファイルの内容からデータを取得するリクエスト・ボディ・パブリッシャ。- パラメータ:
path
- 本文を含むファイルへのパス- 戻り値:
- a BodyPublisher
- 例外:
FileNotFoundException
- パスが見つからない場合SecurityException
- セキュリティ・マネージャがインストールされていて、指定されたファイルに対してread access
を拒否した場合
-
fromByteArrays
static HttpRequest.BodyPublisher fromByteArrays(Iterable<byte[]> iter)
バイト配列のIterable
からデータを取得するリクエストボディ・パブリッシャ。Iterator
インスタンスを提供するIterable
が提供されています。 リクエストを送信しようとするたびに、Iterable
が1回呼び出されます。- パラメータ:
iter
- バイト配列のIterable- 戻り値:
- a BodyPublisher
-
noBody
static HttpRequest.BodyPublisher noBody()
リクエスト本文を送信しないリクエストボディ・パブリッシャ。- 戻り値:
- すぐに完了し、リクエスト本文を送信しないBodyPublisher。
-
contentLength
long contentLength()
このリクエスト本文のコンテンツ長を返します。 リクエスト本文が送信されない場合はゼロ、固定長コンテンツの場合は0より大きい、未知のコンテンツ長の場合はゼロ未満である可能性があります。 このメソッドは、パブリッシャがサブスクライブされる前に呼び出すことができます。 このメソッドは、HTTPクライアントの実装によって複数回呼び出され、毎回同じ定数値を返さなければなりません。- 戻り値:
- 既知の場合は、このリクエスト本文のコンテンツの長さ
-
-