- java.lang.Object
-
- java.net.http.HttpRequest.BodyPublishers
-
- 含まれているクラス:
- HttpRequest
public static class HttpRequest.BodyPublishers extends Object
Stringからのリクエスト本文の公開やファイルからの公開など、各種の便利なパブリッシャを実装するBodyPublisherの実装。次に、事前定義済本体のパブリッシャを使用して、共通の高水準のJavaオブジェクトをリクエスト本文として送信するのに適したデータ・フローに変換する例を示します。
// Request body from a String HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://foo.com/")) .header("Content-Type", "text/plain; charset=UTF-8") .POST(BodyPublishers.ofString("some body text")) .build(); // Request body from a File HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://foo.com/")) .header("Content-Type", "application/json") .POST(BodyPublishers.ofFile(Paths.get("file.json"))) .build(); // Request body from a byte array HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://foo.com/")) .POST(BodyPublishers.ofByteArray(new byte[] { ... })) .build();- 導入されたバージョン:
- 11
-
-
メソッドのサマリー
すべてのメソッド 静的メソッド 具象メソッド 修飾子と型 メソッド 説明 static HttpRequest.BodyPublisherfromPublisher(Flow.Publisher<? extends ByteBuffer> publisher)指定されたFlow.Publisherから本文が取得されるリクエスト本文パブリッシャを返します。static HttpRequest.BodyPublisherfromPublisher(Flow.Publisher<? extends ByteBuffer> publisher, long contentLength)指定されたFlow.Publisherから本文が取得されるリクエスト本文パブリッシャを返します。static HttpRequest.BodyPublishernoBody()リクエスト本文を送信しないリクエスト本文パブリッシャ。static HttpRequest.BodyPublisherofByteArray(byte[] buf)本体が指定されたバイト配列であるリクエスト本文パブリッシャを返します。static HttpRequest.BodyPublisherofByteArray(byte[] buf, int offset, int length)指定されたoffsetから始まるlengthバイトの指定されたバイト配列のコンテンツであるリクエスト本文パブリッシャを返します。static HttpRequest.BodyPublisherofByteArrays(Iterable<byte[]> iter)バイト配列のIterableからデータを取得するリクエスト本文パブリッシャ。static HttpRequest.BodyPublisherofFile(Path path)ファイルの内容からデータを取得するリクエスト本文パブリッシャ。static HttpRequest.BodyPublisherofInputStream(Supplier<? extends InputStream> streamSupplier)InputStreamからデータを読み取るリクエスト本文パブリッシャ。static HttpRequest.BodyPublisherofString(String body)本体が指定されたStringであり、UTF_8文字セットを使用して変換されたリクエスト本文パブリッシャを返します。static HttpRequest.BodyPublisherofString(String s, Charset charset)本体が指定されたStringであり、指定された文字セットを使用して変換されたリクエスト本文パブリッシャを返します。
-
-
-
メソッドの詳細
-
fromPublisher
public static HttpRequest.BodyPublisher fromPublisher(Flow.Publisher<? extends ByteBuffer> publisher)
指定されたFlow.Publisherから本文が取得されるリクエスト本文パブリッシャを返します。 返されたリクエスト本文パブリッシャに不明なコンテンツ長があります。- APIに関するノート:
- このメソッドは、パブリッシャが公開するリクエスト本文の量が不明である
BodyPublisherとFlow.Publisherの間のアダプタとして使用できます。 - パラメータ:
publisher- 本文の公開を担当するパブリッシャ- 戻り値:
- BodyPublisher
-
fromPublisher
public static HttpRequest.BodyPublisher fromPublisher(Flow.Publisher<? extends ByteBuffer> publisher, long contentLength)
指定されたFlow.Publisherから本文が取得されるリクエスト本文パブリッシャを返します。 返されたリクエスト本文パブリッシャは、指定されたコンテンツ長を持ちます。指定された
contentLengthは正の数で、publisherが公開する必要があるバイトの正確な量を表します。- APIに関するノート:
- このメソッドは、パブリッシャが公開するリクエスト本文の量がわかっている
BodyPublisherとFlow.Publisherの間のアダプタとして使用できます。 - パラメータ:
publisher- 本文の公開を担当するパブリッシャcontentLength- パブリッシャが公開する正確なバイト数を表す正の数値- 戻り値:
- BodyPublisher
- 例外:
IllegalArgumentException- コンテンツの長さが正でない場合
-
ofString
public static HttpRequest.BodyPublisher ofString(String body)
本体が指定されたStringであり、UTF_8文字セットを使用して変換されたリクエスト本文パブリッシャを返します。- パラメータ:
body- 本体を含む文字列- 戻り値:
- BodyPublisher
-
ofString
public static HttpRequest.BodyPublisher ofString(String s, Charset charset)
本体が指定されたStringであり、指定された文字セットを使用して変換されたリクエスト本文パブリッシャを返します。- パラメータ:
s- 本体を含む文字列charset- 文字列をバイトに変換する文字セット- 戻り値:
- BodyPublisher
-
ofInputStream
public static HttpRequest.BodyPublisher ofInputStream(Supplier<? extends InputStream> streamSupplier)
InputStreamからデータを読み取るリクエスト本文パブリッシャ。InputStreamのSupplierは、コンテンツがバッファリングされないため、リクエストを繰り返す必要がある場合に使用されます。Supplierは、後続の試行でnullを返す場合があり、その場合、リクエストは失敗します。- パラメータ:
streamSupplier- オープンInputStreamsのサプライヤ- 戻り値:
- BodyPublisher
-
ofByteArray
public static HttpRequest.BodyPublisher ofByteArray(byte[] buf)
本体が指定されたバイト配列であるリクエスト本文パブリッシャを返します。- パラメータ:
buf- 本体を含むバイト配列- 戻り値:
- BodyPublisher
-
ofByteArray
public static HttpRequest.BodyPublisher ofByteArray(byte[] buf, int offset, int length)
指定されたoffsetから始まるlengthバイトの指定されたバイト配列のコンテンツであるリクエスト本文パブリッシャを返します。- パラメータ:
buf- 本体を含むバイト配列offset- 最初のバイトのオフセットlength- 使用するバイト数- 戻り値:
- BodyPublisher
- 例外:
IndexOutOfBoundsException- サブ範囲が範囲外として定義されている場合
-
ofFile
public static HttpRequest.BodyPublisher ofFile(Path path) throws FileNotFoundException
ファイルの内容からデータを取得するリクエスト本文パブリッシャ。BodyPublisherが作成されると、このファクトリ・メソッドでセキュリティ・マネージャの権限チェックが実行されます。BodyPublisherが信頼できないコードと共有されないことに注意してください。- パラメータ:
path- 本体を含むファイルへのパス- 戻り値:
- BodyPublisher
- 例外:
FileNotFoundException- パスが見つからない場合SecurityException- セキュリティ・マネージャがインストールされ、指定されたファイルに対するread accessが拒否された場合
-
ofByteArrays
public static HttpRequest.BodyPublisher ofByteArrays(Iterable<byte[]> iter)
バイト配列のIterableからデータを取得するリクエスト本文パブリッシャ。Iteratorインスタンスを提供するIterableが提供されています。 リクエストを送信しようとするたびに、Iterableが1回起動されます。- パラメータ:
iter- バイト配列の反復可能値- 戻り値:
- BodyPublisher
-
noBody
public static HttpRequest.BodyPublisher noBody()
リクエスト本文を送信しないリクエスト本文パブリッシャ。- 戻り値:
- すぐに完了し、リクエスト本文を送信しないBodyPublisher。
-
-