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