モジュール java.net.http
パッケージ java.net.http

インタフェースHttpRequest.Builder

  • 含まれているクラス:
    HttpRequest

    public static interface HttpRequest.Builder
    「HTTPリクエスト」のビルダー。

    HttpRequest.Builderのインスタンスは、HttpRequest.newBuilder(URI)またはHttpRequest.newBuilder()を呼び出すことによって作成されます。

    このビルダーを使用して、次のようなリクエストごとの状態を構成できます。: リクエストURI、リクエスト・メソッド(明示的に設定しないかぎり、デフォルトはGETです)、特定のリクエスト・ヘッダーなど。各setterメソッドは、ビルダーの状態を変更し、同じインスタンスを返します。 メソッドは同期されておらず、外部同期なしで複数のスレッドから呼び出されるべきではありません。 buildメソッドは、起動されるたびに新しいHttpRequestを返します。 一度構築された HttpRequestは不変であり、複数回送信できます。

    すべてのリクエスト・ヘッダーがユーザー・コードによって設定されるわけではないことに注意してください。 認証、リダイレクションおよびCookie管理に関連するヘッダーなど、セキュリティ上の理由で制限されるものもありますが、直接ユーザー・セット・ヘッダーを使用するのではなく、特定のAPIによって管理されます。

    導入されたバージョン:
    11
    • メソッドの詳細

      • 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の値が上書きされます。
        パラメータ:
        name - ヘッダー名
        value - ヘッダー値
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - ヘッダーの名前または値が有効でない場合、実装によって「RFC 7230セクション-3.2」を参照するか、ヘッダー名または値が「制限付き」です。
      • GET

        HttpRequest.Builder GET()
        このBuilderのリクエスト・メソッドをGETに設定します。 これはデフォルトです。
        戻り値:
        このビルダー
      • POST

        HttpRequest.Builder POST​(HttpRequest.BodyPublisher bodyPublisher)
        このBuilderのリクエスト・メソッドをPOSTに設定し、リクエストボディ・パブリッシャを指定された値に設定します。
        パラメータ:
        bodyPublisher - ボディ・パブリッシャ
        戻り値:
        このビルダー
      • PUT

        HttpRequest.Builder PUT​(HttpRequest.BodyPublisher bodyPublisher)
        このBuilderのリクエスト・メソッドをPUTに設定し、リクエストボディ・パブリッシャを指定された値に設定します。
        パラメータ:
        bodyPublisher - ボディ・パブリッシャ
        戻り値:
        このビルダー
      • DELETE

        HttpRequest.Builder DELETE()
        このビルダーのリクエスト・メソッドをDELETEに設定します。
        戻り値:
        このビルダー
      • method

        HttpRequest.Builder method​(String method,
                                   HttpRequest.BodyPublisher bodyPublisher)
        このBuilderのリクエスト・メソッドとリクエスト本文を指定された値に設定します。
        APIの注:
        noBodyリクエスト本文パブリッシャは、リクエスト本文が必要ない場合や適切でない場合に使用できます。 メソッドが制限されるかどうかは、実装に固有です。 たとえば、一部の実装では、CONNECTメソッドを制限するよう選択できます。
        パラメータ:
        method - 使用するメソッド
        bodyPublisher - ボディ・パブリッシャ
        戻り値:
        このビルダー
        例外:
        IllegalArgumentException - メソッド名が有効でない場合、「RFC 7230セクション-3.1.1」を参照するか、メソッドが実装によって制限されます。
      • copy

        HttpRequest.Builder copy()
        現在の状態に基づいて、このBuilderの正確な複製コピーを返します。 新しいビルダーは、このビルダーとは独立して変更できます。
        戻り値:
        このビルダーの正確なコピー