模块 java.net.http

类 HttpHeaders

java.lang.Object
java.net.http.HttpHeaders

public final class HttpHeaders extends Object
一组 HTTP 标头的只读视图。

HttpHeaders 通常不是直接创建的,而是从 HttpRequest HttpResponse 返回的。可以通过请求生成器的 headers 方法之一为 request 设置特定的 HTTP 标头。

此类的方法(接受字符串标头名称)和 map 方法返回的 Map 在检索标头值时不考虑大小写。

HTTP 标头名称可能在 HTTP 协议中出现多次。因此,标头表示为名称和值列表。标头值的每次出现都被逐字添加到适当的标头名称列表中,而不解释其值。特别是,HttpHeaders 不对逗号分隔的标头值字符串执行任何拆分或连接。当 building 请求时,标头值列表中元素的顺序将被保留。对于响应,标头值列表中元素的顺序是它们被接收的顺序。然而,由 map 方法返回的 Map 不就其条目的顺序提供任何保证。

HttpHeaders 实例是不可变的。

自从:
11
  • 方法详情

    • firstValue

      public Optional <String > firstValue(String  name)
      返回一个 Optional ,其中包含给定命名(也可能是多值)标头的第一个标头字符串值。如果标头不存在,则返回的 Optional 为空。
      参数:
      name - 标头名称
      返回:
      一个 Optional<String> 包含第一个命名的标头字符串值(如果存在)
    • firstValueAsLong

      public OptionalLong  firstValueAsLong(String  name)
      返回一个 OptionalLong ,其中包含命名标头字段的第一个标头字符串值。如果标头不存在,则 Optional 为空。如果标头存在但包含未解析为 Long 值的值,则会抛出异常。
      参数:
      name - 标头名称
      返回:
      OptionalLong
      抛出:
      NumberFormatException - 如果找到一个值,但不解析为 Long
    • allValues

      public List <String > allValues(String  name)
      返回给定命名标头的所有标头字符串值的不可修改列表。始终返回一个列表,如果标题不存在,该列表可能为空。
      参数:
      name - 标头名称
      返回:
      标头字符串值列表
    • map

      public Map <String ,List <String >> map()
      返回此 HttpHeaders 的不可修改的多 Map 视图。
      返回:
      map
    • equals

      public final boolean equals(Object  obj)
      测试此 HTTP 标头实例是否与给定对象相等。

      如果给定对象不是 HttpHeaders,则此方法返回 false。如果两个 HTTP 标头对应的 map 都相等,则两个 HTTP 标头相等。

      此方法满足Object.equals 方法的一般契约。

      重写:
      equals 在类 Object
      参数:
      obj - 此对象要与之比较的对象
      返回:
      true 当且仅当给定对象是等于此 HTTP 标头的 HttpHeaders
      参见:
    • hashCode

      public final int hashCode()
      计算此 HTTP 标头实例的哈希码。

      哈希码基于 HTTP 标头 map 的组件,并满足 Object.hashCode 方法的一般约定。

      重写:
      hashCode 在类 Object
      返回:
      此 HTTP 标头的哈希码值
      参见:
    • toString

      public String  toString()
      将此 HTTP 标头作为字符串返回。
      重写:
      toString 在类 Object
      返回:
      描述 HTTP 标头的字符串
    • of

      public static HttpHeaders  of(Map <String ,List <String >> headerMap, BiPredicate <String ,String > filter)
      从给定的map返回 HTTP 标头。给定映射的键表示标头名称,其值是该标头名称的字符串标头值列表。

      HTTP 标头名称可能在 HTTP 协议中出现多次。这样的,多值,标头必须由给定map中的单个条目表示,其条目值是表示多个标头字符串值的列表。在处理之前,将从给定映射及其列表中检索到的所有字符串值中删除前导和尾随空格。只有在过滤后至少包含一个(可能为空字符串)值的标头才会被添加到 HTTP 标头中。

      API 注意:
      此方法的主要目的是用于测试框架。可以通过 HttpRequest headers 方法之一设置每个请求标头。
      参数:
      headerMap - 包含标头名称和值的映射
      filter - 一个过滤器,可用于检查给定map中的每个标头名称和值对,以确定是否应该将其添加到 HTTP 标头中
      返回:
      包含给定标头的 HTTP 标头实例
      抛出:
      NullPointerException - 如果以下任何一个: headerMap ,给定map中的键或值,或映射值列表中的条目,或 filter ,是 null
      IllegalArgumentException - 如果给定的 headerMap 包含任意两个相等的键(不考虑大小写);或者如果给定的映射包含任何键,其长度在修剪空格后为 0