- 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.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
noBody()
リクエスト本文を送信しないリクエストボディ・パブリッシャ。static HttpRequest.BodyPublisher
ofByteArray(byte[] buf)
本文が指定されたバイト配列であるリクエストボディ・パブリッシャを返します。static HttpRequest.BodyPublisher
ofByteArray(byte[] buf, int offset, int length)
指定されたoffset
から始まるlength
バイトの指定されたバイト配列の内容を本文として持つリクエストボディ・パブリッシャを返します。static HttpRequest.BodyPublisher
ofByteArrays(Iterable<byte[]> iter)
バイト配列のIterable
からデータを取得するリクエストボディ・パブリッシャ。static HttpRequest.BodyPublisher
ofFile(Path path)
ファイルの内容からデータを取得するリクエスト・ボディ・パブリッシャ。static HttpRequest.BodyPublisher
ofInputStream(Supplier<? extends InputStream> streamSupplier)
InputStream
からデータを読み取るリクエスト・ボディ・パブリッシャ。static HttpRequest.BodyPublisher
ofString(String body)
UTF_8
文字セットを使用して変換された、指定されたString
の本文を持つリクエスト本体パブリッシャを返します。static HttpRequest.BodyPublisher
ofString(String s, Charset charset)
指定された文字セットを使用して変換された、指定されたString
の本文を持つリクエスト・ボディ・パブリッシャを返します。
-
-
-
メソッドの詳細
-
fromPublisher
public static HttpRequest.BodyPublisher fromPublisher(Flow.Publisher<? extends ByteBuffer> publisher)
指定されたFlow.Publisher
から本文が取得されたリクエスト・ボディ・パブリッシャを返します。 返されたリクエストボディ・パブリッシャのコンテンツ長は不明です。- APIの注:
- このメソッドは、
BodyPublisher
とFlow.Publisher
の間のアダプタとして使用できます。この場合、パブリッシャが公開するリクエスト本文の量は不明です。 - パラメータ:
publisher
- 本文の発行責任者- 戻り値:
- a BodyPublisher
-
fromPublisher
public 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
- コンテンツの長さが正でない場合
-
ofString
public static HttpRequest.BodyPublisher ofString(String body)
UTF_8
文字セットを使用して変換された、指定されたString
の本文を持つリクエスト本体パブリッシャを返します。- パラメータ:
body
- 本文を含むString- 戻り値:
- a BodyPublisher
-
ofString
public static HttpRequest.BodyPublisher ofString(String s, Charset charset)
指定された文字セットを使用して変換された、指定されたString
の本文を持つリクエスト・ボディ・パブリッシャを返します。- パラメータ:
s
- 本文を含むStringcharset
- 文字列をバイトに変換する文字セット- 戻り値:
- a BodyPublisher
-
ofInputStream
public static HttpRequest.BodyPublisher ofInputStream(Supplier<? extends InputStream> streamSupplier)
InputStream
からデータを読み取るリクエスト・ボディ・パブリッシャ。InputStream
のSupplier
は、コンテンツがバッファされていないため、リクエストを繰り返す必要がある場合に使用されます。Supplier
は、その後の試行でnull
を返します。この場合、リクエストは失敗します。- パラメータ:
streamSupplier
- オープンなInputStreamのサプライヤ- 戻り値:
- a BodyPublisher
-
ofByteArray
public static HttpRequest.BodyPublisher ofByteArray(byte[] buf)
本文が指定されたバイト配列であるリクエストボディ・パブリッシャを返します。- パラメータ:
buf
- 本文を含むバイト配列- 戻り値:
- a BodyPublisher
-
ofByteArray
public static HttpRequest.BodyPublisher ofByteArray(byte[] buf, int offset, int length)
指定されたoffset
から始まるlength
バイトの指定されたバイト配列の内容を本文として持つリクエストボディ・パブリッシャを返します。- パラメータ:
buf
- 本文を含むバイト配列offset
- 最初のバイトのオフセットlength
- 使用するバイト数- 戻り値:
- a BodyPublisher
- 例外:
IndexOutOfBoundsException
- サブ範囲が範囲外として定義されている場合
-
ofFile
public static HttpRequest.BodyPublisher ofFile(Path path) throws FileNotFoundException
ファイルの内容からデータを取得するリクエスト・ボディ・パブリッシャ。BodyPublisher
が作成されると、このファクトリ・メソッドでセキュリティ・マネージャの権限チェックが実行されます。BodyPublisher
が信頼できないコードと共有されないことに注意してください。- パラメータ:
path
- 本文を含むファイルへのパス- 戻り値:
- a BodyPublisher
- 例外:
FileNotFoundException
- パスが見つからない場合SecurityException
- セキュリティ・マネージャがインストールされていて、指定されたファイルに対してread access
を拒否した場合
-
ofByteArrays
public static HttpRequest.BodyPublisher ofByteArrays(Iterable<byte[]> iter)
バイト配列のIterable
からデータを取得するリクエストボディ・パブリッシャ。Iterator
インスタンスを提供するIterable
が提供されています。 リクエストを送信しようとするたびに、Iterable
が1回呼び出されます。- パラメータ:
iter
- バイト配列のIterable- 戻り値:
- a BodyPublisher
-
noBody
public static HttpRequest.BodyPublisher noBody()
リクエスト本文を送信しないリクエストボディ・パブリッシャ。- 戻り値:
- すぐに完了し、リクエスト本文を送信しないBodyPublisher。
-
-