クラスHttpRequest

java.lang.Object
java.net.http.HttpRequest

public abstract class HttpRequest extends Object
HTTPリクエスト。

HttpRequestインスタンスは、HttpRequest builderを介して構築されます。 HttpRequestビルダーは、newBuilderメソッドのいずれかから取得されます。 リクエストURI、ヘッダーおよび本文を設定できます。 リクエスト本体は、POSTPUTまたはmethodメソッドの1つに提供されているBodyPublisherを介して提供されます。 必要なパラメータがすべてビルダーに設定されると、buildHttpRequestを返します。 一部のパラメータが異なる複数の関連リクエストを作成するために、ビルダーを何度でもコピーおよび変更できます。

レスポンス本文を文字列として出力する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リクエスト」のビルダー。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    HttpRequestを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このリクエストで設定されたHttpRequest.BodyPublisherを含むOptionalを返します。
    final boolean
    このHTTPリクエスト・インスタンスが指定されたオブジェクトと等しいかどうかをテストします。
    abstract boolean
    このリクエスト「続行の予定」設定を返します。
    <T> Optional<T>
    getOption(HttpOption<T> option)
    指定されたオプションについて、このリクエストで構成された値を返します(ある場合)。
    final int
    このHTTPリクエスト・インスタンスのハッシュ・コードを計算します。
    abstract HttpHeaders
    このリクエストが送信された(または)である(user-accessible)リクエスト・ヘッダー。
    abstract String
    このリクエストのリクエスト・メソッドを返します。
    HttpRequestビルダーを作成します。
    既存のHttpRequestから初期状態がコピーされるBuilderを作成します。
    指定されたURIのHttpRequestビルダーを作成します。
    abstract Optional<Duration>
    このリクエストのタイムアウト期間を含むOptionalを返します。
    abstract URI
    uri()
    このリクエストURIを返します。
    このHttpRequestにリクエストされるHTTPプロトコル・バージョンを含むOptionalを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • HttpRequest

      protected HttpRequest()
      HttpRequestを作成します。
  • メソッドの詳細

    • getOption

      public <T> Optional<T> getOption(HttpOption<T> option)
      指定されたオプションについて、このリクエストで構成された値を返します(ある場合)。
      実装要件:
      このメソッドのデフォルト実装では、optionがnull以外の場合はOptional.empty()を返し、それ以外の場合はNullPointerExceptionをスローします。
      型パラメータ:
      T - オプションのタイプ
      パラメータ:
      option - リクエスト構成オプション
      戻り値:
      指定されたオプションに対してこのリクエストに構成されている値(ある場合)
      導入されたバージョン:
      26
      関連項目:
    • 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)
      • 特定のヘッダー(たとえば、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は空です。
      戻り値:
      このリクエストのBodyPublisherを含むOptional
    • method

      public abstract String method()
      このリクエストのリクエスト・メソッドを返します。 明示的に設定しない場合、リクエストのデフォルト・メソッドは"GET"です。
      戻り値:
      このリクエストのメソッド
    • timeout

      public abstract Optional<Duration> timeout()
      このリクエストのタイムアウト期間を含むOptionalを返します。 リクエストのビルダーでタイムアウト期間が設定されなかった場合、Optionalは空になります。
      戻り値:
      このリクエストのタイムアウト期間を含むOptional
    • expectContinue

      public abstract boolean expectContinue()
      このリクエスト「続行の予定」設定を返します。
      戻り値:
      このリクエストの予想継続設定
    • uri

      public abstract URI uri()
      このリクエストURIを返します。
      戻り値:
      このリクエストのURI
    • version

      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メソッドの汎用規約を満たします。

      オーバーライド:
      equals、クラスObject
      パラメータ:
      obj - このオブジェクトが比較されるオブジェクト
      戻り値:
      指定されたオブジェクトがこのHTTPリクエストと等しい HttpRequestである場合にのみtrue
      関連項目:
    • hashCode

      public final int hashCode()
      このHTTPリクエスト・インスタンスのハッシュ・コードを計算します。

      ハッシュ・コードは、HTTPリクエストのURI、メソッドおよびヘッダー・コンポーネントに基づいており、Object.hashCodeメソッドの一般規約を満たしています。

      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このHTTPリクエストのハッシュ・コード値
      関連項目: