-
- 含まれているクラス:
- HttpRequest
public static interface HttpRequest.Builder「HTTPリクエスト」のビルダー。HttpRequest.Builderのインスタンスは、HttpRequest.newBuilder(URI)またはHttpRequest.newBuilder()をコールして作成されます。このビルダーを使用して、次のようなリクエストごとの状態を構成できます: リクエストURI、リクエスト・メソッド(明示的に設定しないかぎり、デフォルトはGETです)、特定のリクエスト・ヘッダーなど。各setterメソッドは、ビルダーの状態を変更し、同じインスタンスを返します。 メソッドは同期されず、外部同期なしで複数のスレッドからコールしないでください。
buildメソッドは、起動されるたびに新しいHttpRequestを返します。 一度構築されたHttpRequestは不変であり、複数回送信できます。すべてのリクエスト・ヘッダーがユーザー・コードによって設定されるわけではないことに注意してください。 認証、リダイレクションおよびCookie管理に関連するヘッダーなど、セキュリティ上の理由で制限されるものもありますが、直接ユーザー・セット・ヘッダーを使用するのではなく、特定のAPIによって管理されます。
- 導入されたバージョン:
- 11
-
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 HttpRequestbuild()HttpRequestを作成して返します。HttpRequest.Buildercopy()現在の状態に基づいて、このBuilderの正確な複製コピーを返します。HttpRequest.BuilderDELETE()このビルダーのリクエスト・メソッドをDELETEに設定します。HttpRequest.BuilderexpectContinue(boolean enable)本文を送信する前に、サーバーがリクエストを確認するようにリクエストします。HttpRequest.BuilderGET()このビルダーのリクエスト・メソッドをGETに設定します。HttpRequest.Builderheader(String name, String value)指定された名前値のペアを、このリクエストのヘッダー・セットに追加します。HttpRequest.Builderheaders(String... headers)指定された名前と値のペアを、このリクエストのヘッダー・セットに追加します。HttpRequest.Buildermethod(String method, HttpRequest.BodyPublisher bodyPublisher)このビルダーのリクエスト・メソッドおよびリクエスト本文を指定された値に設定します。HttpRequest.BuilderPOST(HttpRequest.BodyPublisher bodyPublisher)このビルダーのリクエスト・メソッドをPOSTに設定し、そのリクエスト本文パブリッシャを指定された値に設定します。HttpRequest.BuilderPUT(HttpRequest.BodyPublisher bodyPublisher)このビルダーのリクエスト・メソッドをPUTに設定し、そのリクエスト本文パブリッシャを指定された値に設定します。HttpRequest.BuildersetHeader(String name, String value)指定された名前値のペアを、このリクエストのヘッダーのセットに設定します。HttpRequest.Buildertimeout(Duration duration)このリクエストのタイムアウトを設定します。HttpRequest.Builderuri(URI uri)このHttpRequestのリクエストURIを設定します。HttpRequest.Builderversion(HttpClient.Version version)このリクエストの優先HttpClient.Versionを設定します。
-
-
-
メソッドの詳細
-
uri
HttpRequest.Builder uri(URI uri)
このHttpRequestのリクエストURIを設定します。- パラメータ:
uri- リクエストURI- 戻り値:
- このビルダー
- 例外:
IllegalArgumentException-URIスキームがサポートされていない場合
-
expectContinue
HttpRequest.Builder expectContinue(boolean enable)
本文を送信する前に、サーバーがリクエストを確認するようにリクエストします。 デフォルトでは、出力が無効化されます。 有効な場合、サーバーは、クライアントがリクエスト本文を送信する前に、エラー・レスポンスまたは100 Continueレスポンスを送信するようにリクエストされます。 これは、この暫定レスポンスが受信されるまで、リクエストのリクエスト・パブリッシャは呼び出されないことを意味します。- パラメータ:
enable- Expectが引き続き送信される場合はtrue- 戻り値:
- このビルダー
-
version
HttpRequest.Builder version(HttpClient.Version version)
このリクエストの優先HttpClient.Versionを設定します。対応する
HttpResponseで、実際に使用されたバージョンをチェックする必要があります。 リクエストでバージョンが設定されていない場合、リクエストされるバージョンは、送信側HttpClientのバージョンになります。- パラメータ:
version- リクエストされたHTTPプロトコルのバージョン- 戻り値:
- このビルダー
-
header
HttpRequest.Builder header(String name, String value)
指定された名前値のペアを、このリクエストのヘッダー・セットに追加します。 指定された値は、その名前の値リストに追加されます。- 実装上のノート:
- HTTPクライアントが値自体を決定する可能性があるため、実装では一部のヘッダー名または値を制限することを選択できます。 たとえば、"Content-Length"は、リクエストPublisherによって決定されます。 このような場合、
HttpRequest.Builderの実装では、そのようなヘッダーがビルダーに渡されると、IllegalArgumentExceptionをスローするように選択できます。 - パラメータ:
name- ヘッダー名value- ヘッダー値- 戻り値:
- このビルダー
- 例外:
IllegalArgumentException- ヘッダーの名前または値が有効でない場合、「RFC 7230セクション-3.2」を参照するか、ヘッダーの名前または値が実装によって制限されます。
-
headers
HttpRequest.Builder headers(String... headers)
指定された名前と値のペアを、このリクエストのヘッダー・セットに追加します。 指定されたStringインスタンスは、ヘッダー名およびヘッダー値として代替される必要があります。 同じ名前に複数の値を追加するには、新しい値ごとに同じ名前を指定する必要があります。- パラメータ:
headers- 名前と値のペアのリスト- 戻り値:
- このビルダー
- 例外:
IllegalArgumentException- 奇数のパラメータがある場合、またはヘッダーの名前または値が有効でない場合は、実装によって「RFC 7230セクション-3.2」またはヘッダーの名前または値が「制限付き」になります。
-
timeout
HttpRequest.Builder timeout(Duration duration)
このリクエストのタイムアウトを設定します。 指定されたタイムアウト内にレスポンスを受信しなかった場合、HttpClient::sendまたはHttpClient::sendAsyncからHttpTimeoutExceptionが例外的にHttpTimeoutExceptionを使ってスローされます。 タイムアウトを設定しないという効果は、無限の期間を設定すること、つまり永遠にブロックすることと同じです。- パラメータ:
duration- タイムアウト期間- 戻り値:
- このビルダー
- 例外:
IllegalArgumentException- 期間が正でない場合
-
setHeader
HttpRequest.Builder setHeader(String name, String value)
指定された名前値のペアを、このリクエストのヘッダーのセットに設定します。 これにより、以前に設定された名前の値が上書きされます。- パラメータ:
name- ヘッダー名value- ヘッダー値- 戻り値:
- このビルダー
- 例外:
IllegalArgumentException- ヘッダーの名前または値が有効でない場合、実装によって「RFC 7230セクション-3.2」を参照するか、ヘッダー名または値が「制限付き」です。
-
GET
HttpRequest.Builder GET()
このビルダーのリクエスト・メソッドをGETに設定します。 これはデフォルトです。- 戻り値:
- このビルダー
-
POST
HttpRequest.Builder POST(HttpRequest.BodyPublisher bodyPublisher)
このビルダーのリクエスト・メソッドをPOSTに設定し、そのリクエスト本文パブリッシャを指定された値に設定します。- パラメータ:
bodyPublisher- 本文パブリッシャ- 戻り値:
- このビルダー
-
PUT
HttpRequest.Builder PUT(HttpRequest.BodyPublisher bodyPublisher)
このビルダーのリクエスト・メソッドをPUTに設定し、そのリクエスト本文パブリッシャを指定された値に設定します。- パラメータ:
bodyPublisher- 本文パブリッシャ- 戻り値:
- このビルダー
-
DELETE
HttpRequest.Builder DELETE()
このビルダーのリクエスト・メソッドをDELETEに設定します。- 戻り値:
- このビルダー
-
method
HttpRequest.Builder method(String method, HttpRequest.BodyPublisher bodyPublisher)
このビルダーのリクエスト・メソッドおよびリクエスト本文を指定された値に設定します。- APIに関するノート:
noBodyリクエスト本文パブリッシャは、リクエスト本文が必要ない場合や適切でない場合に使用できます。 メソッドが制限されるかどうかは、実装に固有です。 たとえば、一部の実装では、CONNECTメソッドを制限するよう選択できます。- パラメータ:
method- 使用するメソッドbodyPublisher- 本文パブリッシャ- 戻り値:
- このビルダー
- 例外:
IllegalArgumentException- メソッド名が有効でない場合、「RFC 7230セクション-3.1.1」を参照するか、メソッドが実装によって制限されます。
-
build
HttpRequest build()
HttpRequestを作成して返します。- 戻り値:
- 新しい
HttpRequest - 例外:
IllegalStateException- URIが設定されていない場合
-
copy
HttpRequest.Builder copy()
現在の状態に基づいて、このBuilderの正確な複製コピーを返します。 新しいビルダーは、このビルダーとは別に変更できます。- 戻り値:
- このビルダーの正確なコピー
-
-