Module java.net.http
Package java.net.http

Class HttpHeaders

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

public final class HttpHeaders extends Object
一个HTTP头部集合的只读视图。

HttpHeaders通常不会直接创建,而是从HttpRequestHttpResponse返回。可以通过请求构建器的一个headers方法为请求设置特定的HTTP头部。

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

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

HttpHeaders实例是不可变的。

自:
11
  • Method Details

    • 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。如果每个对应的map都相等,则两个HTTP头部相等。

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

      覆盖:
      equals 在类 Object
      参数:
      obj - 要比较的对象
      返回:
      如果给定对象是等于此HTTP头部的HttpHeaders,则返回true
      参见:
    • 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头部。给定map的键表示头部名称,其值表示该头部名称的字符串头部值列表。

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

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