HttpRequest
インスタンスは、HttpRequest
builderを介して構築されます。 HttpRequest
ビルダーは、newBuilder
メソッドのいずれかから取得されます。 リクエストURI
、ヘッダーおよび本文を設定できます。 リクエスト本体は、POST
、PUT
またはmethod
メソッドの1つに提供されているBodyPublisher
を介して提供されます。 必要なパラメータがすべてビルダーに設定されると、build
はHttpRequest
を返します。 一部のパラメータが異なる複数の関連リクエストを作成するために、ビルダーを何度でもコピーおよび変更できます。
レスポンス本文を文字列として出力するGETリクエストの例を次に示します。
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://foo.com/"))
.build();
client.sendAsync(request, BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
クラスBodyPublishers
は、多くの共通パブリッシャの実装を提供します。 または、カスタムBodyPublisher
の実装を使用できます。
- 導入されたバージョン:
- 11
-
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static interface
BodyPublisher
は、上位レベルのJavaオブジェクトをリクエスト本文として送信するのに適したバイト・バッファのフローに変換します。static class
Stringからのリクエスト本文の公開やファイルからの公開など、各種の便利なパブリッシャを実装するBodyPublisher
の実装。static interface
「HTTPリクエスト」のビルダー。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract Optional<HttpRequest.BodyPublisher>
このリクエストで設定されたHttpRequest.BodyPublisher
を含むOptional
を返します。final boolean
このHTTPリクエスト・インスタンスが指定されたオブジェクトと等しいかどうかをテストします。abstract boolean
このリクエスト「続行の予定」設定を返します。final int
hashCode()
このHTTPリクエスト・インスタンスのハッシュ・コードを計算します。abstract HttpHeaders
headers()
(user-accessible)リクエスト・ヘッダーは、このリクエストが送信された(または)でした。abstract String
method()
このリクエストのリクエスト・メソッドを返します。static HttpRequest.Builder
HttpRequest
ビルダーを作成します。static HttpRequest.Builder
newBuilder
(HttpRequest request, BiPredicate<String, String> filter) 既存のHttpRequest
から初期状態がコピーされるBuilder
を作成します。static HttpRequest.Builder
newBuilder
(URI uri) 指定されたURIのHttpRequest
ビルダーを作成します。timeout()
このリクエスト・タイムアウト期間を含むOptional
を返します。abstract URI
uri()
このリクエストURI
を返します。abstract Optional<HttpClient.Version>
version()
このHttpRequest
にリクエストされるHTTPプロトコル・バージョンを含むOptional
を返します。
-
コンストラクタの詳細
-
HttpRequest
protected HttpRequest()HttpRequestを作成します。
-
-
メソッドの詳細
-
newBuilder
public static HttpRequest.Builder newBuilder(URI uri) 指定されたURIのHttpRequest
ビルダーを作成します。- パラメータ:
uri
- リクエストURI- 戻り値:
- 新しいリクエスト・ビルダー
- 例外:
IllegalArgumentException
- URIスキームがサポートされていない場合。
-
newBuilder
public static HttpRequest.Builder newBuilder(HttpRequest request, BiPredicate<String, String> filter) 既存のHttpRequest
から初期状態がコピーされるBuilder
を作成します。このビルダーを使用すると、元のビルダーと同等の
HttpRequest
を構築しながら、構築前のリクエスト状態を修正できます - たとえば、ヘッダーを追加します。filter
は、特定のリクエストからコピーされるときに、各ヘッダー名と値のペアに適用されます。 完了すると、filter
によってレイアウトされた条件を満たすヘッダーのみが、このメソッドから返されるBuilder
に存在します。- APIのノート:
- 次のシナリオは、フィルタの一般的なユースケースを示しています。
HttpRequest
requestを確認してください:
- すべてのヘッダーを保持:
HttpRequest.newBuilder(request, (n, v) -> true)
- すべてのヘッダーを削除:
HttpRequest.newBuilder(request, (n, v) -> false)
- 特定のヘッダー(e.g. Foo-Bar)を削除します:
HttpRequest.newBuilder(request, (name, value) -> !name.equalsIgnoreCase("Foo-Bar"))
- すべてのヘッダーを保持:
- パラメータ:
request
- 元のリクエストfilter
- ヘッダー・フィルタ- 戻り値:
- 新しいリクエスト・ビルダー
- 例外:
IllegalArgumentException
- 指定されたリクエスト(たとえば、リクエストに無効なパラメータが含まれている場合)から新しいビルダーをシードできない場合- 導入されたバージョン:
- 16
-
newBuilder
public static HttpRequest.Builder newBuilder()HttpRequest
ビルダーを作成します。- 戻り値:
- 新しいリクエスト・ビルダー
-
bodyPublisher
public abstract Optional<HttpRequest.BodyPublisher> bodyPublisher()このリクエストで設定されたHttpRequest.BodyPublisher
を含むOptional
を返します。BodyPublisher
がリクエスト・ビルダーに設定されていない場合、Optional
は空です。- 戻り値:
- このリクエストを含む
Optional
BodyPublisher
-
method
public abstract String method()このリクエストのリクエスト・メソッドを返します。 明示的に設定されていない場合、任意のリクエストに対するデフォルトのメソッドは"GET"です。- 戻り値:
- このリクエスト・メソッド
-
timeout
このリクエスト・タイムアウト期間を含むOptional
を返します。 リクエスト・ビルダーでタイムアウト時間が設定されていない場合、Optional
は空です。- 戻り値:
- このリクエスト・タイムアウト時間を含む
Optional
-
expectContinue
public abstract boolean expectContinue()このリクエスト「続行の予定」設定を返します。- 戻り値:
- このリクエストは設定を続けることを期待しています
-
uri
public abstract URI uri()このリクエストURI
を返します。- 戻り値:
- このリクエストURI
-
バージョン
public abstract Optional<HttpClient.Version> version()このHttpRequest
にリクエストされるHTTPプロトコル・バージョンを含むOptional
を返します。 リクエスト・ビルダーにバージョンが設定されていない場合、Optional
は空です。 その場合、リクエストされたバージョンは送信するHttpClient
のバージョンになります。 実際に使用されたバージョンを確認するには、対応するHttpResponse
を問合せする必要があります。- 戻り値:
- HTTPプロトコル・バージョン
-
headers
public abstract HttpHeaders headers()(user-accessible)リクエスト・ヘッダーは、このリクエストが送信された(または)でした。- 戻り値:
- このリクエストHttpHeaders
-
equals
public final boolean equals(Object obj) このHTTPリクエスト・インスタンスが指定されたオブジェクトと等しいかどうかをテストします。指定されたオブジェクトが
HttpRequest
でない場合、このメソッドはfalse
を返します。 URI、メソッド、およびヘッダー・フィールドがすべて等しい場合、2つのHTTPリクエストは等しいです。このメソッドは
Object.equals
メソッドの汎用規約を満たします。 -
hashCode
public final int hashCode()このHTTPリクエスト・インスタンスのハッシュ・コードを計算します。ハッシュ・コードは、HTTPリクエストのURI、メソッド、およびヘッダー・コンポーネントに基づいており、
Object.hashCode
メソッドの汎用規約を満たしています。
-