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

クラスHttpHeaders


  • public final class HttpHeaders
    extends Object
    一連のHTTPヘッダーの読み取り専用ビュー。

    通常、HttpHeadersは直接作成されるのではなく、HttpRequestまたはHttpResponseから戻されます。 リクエスト・ビルダーheadersメソッドの1つを介してrequestに特定のHTTPヘッダーを設定できます。

    このクラス(Stringヘッダー名を受け入れる)のメソッドおよびmapメソッドによって戻されたMapは、ヘッダー値の取得時にケースに関係なく動作します。

    HTTPプロトコルではHTTPヘッダー名が複数回使用される場合があります。 このため、ヘッダーは名前と値リストとして表されます。 ヘッダー値が出現するたびに、その値が解釈されることなく、該当するヘッダー名リストに一杯に追加されます。 特に、HttpHeadersは、カンマ区切りのヘッダー値文字列を分割または結合しても実行しません。 buildingがリクエストである場合、ヘッダー値リストの要素の順序は保持されます。 レスポンスの場合、ヘッダー値リストの要素の順序は、受信された順序です。 ただし、mapメソッドによって返されたMapは、エントリの順序付けに関する保証を提供しません。

    HttpHeadersインスタンスは不変です。

    導入されたバージョン:
    11
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      List<String> allValues​(String name)
      指定された名前付きヘッダーのすべてのヘッダー文字列値の変更不可リストを返します。
      boolean equals​(Object obj)
      このHTTPヘッダー・インスタンスが指定されたオブジェクトと等しいかどうかをテストします。
      Optional<String> firstValue​(String name)
      指定された(おそらく多値)ヘッダーの最初のヘッダー文字列値を含むOptionalを返します。
      OptionalLong firstValueAsLong​(String name)
      指定されたヘッダー・フィールドの最初のヘッダー文字列値を含むOptionalLongを返します。
      int hashCode()
      このHTTPヘッダー・インスタンスのハッシュ・コードを計算します。
      Map<String,​List<String>> map()
      このHttpHeadersの変更不可能なマルチ・マップ・ビューを返します。
      static HttpHeaders of​(Map<String,​List<String>> headerMap, BiPredicate<String,​String> filter)
      指定されたマップからHTTPヘッダーを返します。
      String toString()
      このHTTPヘッダーを文字列として返します。
    • メソッドの詳細

      • firstValue

        public Optional<String> firstValue​(String name)
        指定された(おそらく多値)ヘッダーの最初のヘッダー文字列値を含むOptionalを返します。 ヘッダーが存在しない場合、返されたOptionalは空です。
        パラメータ:
        name - ヘッダー名
        戻り値:
        最初に名前が付けられたヘッダー文字列値(存在する場合)を含むOptional<String>
      • firstValueAsLong

        public OptionalLong firstValueAsLong​(String name)
        指定されたヘッダー・フィールドの最初のヘッダー文字列値を含むOptionalLongを返します。 ヘッダーが存在しない場合、オプションは空です。 ヘッダーが存在するが、Long値として解析されない値が含まれている場合、例外がスローされます。
        パラメータ:
        name - ヘッダー名
        戻り値:
        OptionalLong
        例外:
        NumberFormatException - 値が見つかるが、Longとして解析されない場合
      • allValues

        public List<String> allValues​(String name)
        指定された名前付きヘッダーのすべてのヘッダー文字列値の変更不可リストを返します。 Listが常に返されます。ヘッダーが存在しない場合は、空である可能性があります。
        パラメータ:
        name - ヘッダー名
        戻り値:
        ヘッダー文字列値のリスト
      • map

        public Map<String,​List<String>> map()
        このHttpHeadersの変更不可能なマルチ・マップ・ビューを返します。
        戻り値:
        マップ
      • equals

        public final boolean equals​(Object obj)
        このHTTPヘッダー・インスタンスが指定されたオブジェクトと等しいかどうかをテストします。

        指定されたオブジェクトがHttpHeadersでない場合、このメソッドはfalseを返します。 対応するmapsが等しい場合、2つのHTTPヘッダーが等しくなります。

        このメソッドはObject.equalsメソッドの汎用規約を満たします。

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

        public String toString()
        このHTTPヘッダーを文字列として返します。
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        HTTPヘッダーを記述する文字列
      • of

        public static HttpHeaders of​(Map<String,​List<String>> headerMap,
                                     BiPredicate<String,​String> filter)
        指定されたマップからHTTPヘッダーを返します。 指定したマップ・キーはヘッダー名、およびそのヘッダー名の文字列ヘッダー値のリストを表します。

        HTTPプロトコルではHTTPヘッダー名が複数回使用される場合があります。 そのようなmulti-valuedのヘッダーは、指定されたマップの単一のエントリで表現される必要があり、そのエントリ値は複数のヘッダー文字列の値を表すリストです。 先頭および末尾の空白は、処理前に、指定されたマップおよびそのリストから取得されたすべての文字列値から削除されます。 フィルタ処理後、少なくとも1つの空の文字列を含むヘッダーのみがHTTPヘッダーに追加されます。

        APIの注:
        このメソッドの主な目的は、フレームワークのテストです。 必要なヘッダーは、HttpRequest headersメソッドのいずれかを介して設定できます。
        パラメータ:
        headerMap - ヘッダーの名前と値を含むマップ
        filter - 指定されたマップ内の各ヘッダー/値ペアを検査して、HTTPヘッダーに追加する必要があるかどうかを判断するために使用できるフィルタ。
        戻り値:
        指定されたヘッダーを含むHTTPヘッダー・インスタンス
        例外:
        NullPointerException - 次のいずれかの場合: headerMap、指定されたマップのキーまたは値、あるいはマップ値リストのエントリ、filternullです。
        IllegalArgumentException - 指定されたheaderMapに(ケースに関する情報なし)と等しい2つのキーが含まれている場合、またはホ・ワインをトリミングした後に長さが0であるキーが指定されたマップに含まれている場合