java.lang.Object
java.net.http.HttpHeaders
一组 HTTP 标头的只读视图。
HttpHeaders 通常不是直接创建的,而是从 HttpRequest 或 HttpResponse 返回的。可以通过请求生成器的 headers 方法之一为 request 设置特定的 HTTP 标头。
此类的方法(接受字符串标头名称)和 map 方法返回的 Map 在检索标头值时不考虑大小写。
HTTP 标头名称可能在 HTTP 协议中出现多次。因此,标头表示为名称和值列表。标头值的每次出现都被逐字添加到适当的标头名称列表中,而不解释其值。特别是,HttpHeaders 不对逗号分隔的标头值字符串执行任何拆分或连接。当 building 请求时,标头值列表中元素的顺序将被保留。对于响应,标头值列表中元素的顺序是它们被接收的顺序。然而,由 map 方法返回的 Map 不就其条目的顺序提供任何保证。
HttpHeaders 实例是不可变的。
- 自从:
- 11
-
方法总结
修饰符和类型方法描述返回给定命名标头的所有标头字符串值的不可修改列表。final boolean测试此 HTTP 标头实例是否与给定对象相等。firstValue(String name) 返回一个Optional,其中包含给定命名(也可能是多值)标头的第一个标头字符串值。firstValueAsLong(String name) 返回一个OptionalLong,其中包含命名标头字段的第一个标头字符串值。final inthashCode()计算此 HTTP 标头实例的哈希码。map()返回此 HttpHeaders 的不可修改的多 Map 视图。static HttpHeaders从给定的map返回 HTTP 标头。toString()将此 HTTP 标头作为字符串返回。
-
方法详情
-
firstValue
返回一个Optional,其中包含给定命名(也可能是多值)标头的第一个标头字符串值。如果标头不存在,则返回的Optional为空。- 参数:
name- 标头名称- 返回:
-
一个
Optional<String>包含第一个命名的标头字符串值(如果存在)
-
firstValueAsLong
返回一个OptionalLong,其中包含命名标头字段的第一个标头字符串值。如果标头不存在,则 Optional 为空。如果标头存在但包含未解析为Long值的值,则会抛出异常。- 参数:
name- 标头名称- 返回:
OptionalLong- 抛出:
NumberFormatException- 如果找到一个值,但不解析为 Long
-
allValues
返回给定命名标头的所有标头字符串值的不可修改列表。始终返回一个列表,如果标题不存在,该列表可能为空。- 参数:
name- 标头名称- 返回:
- 标头字符串值列表
-
map
返回此 HttpHeaders 的不可修改的多 Map 视图。- 返回:
- map
-
equals
测试此 HTTP 标头实例是否与给定对象相等。如果给定对象不是
HttpHeaders,则此方法返回false。如果两个 HTTP 标头对应的 map 都相等,则两个 HTTP 标头相等。此方法满足
Object.equals方法的一般契约。 -
hashCode
public final int hashCode()计算此 HTTP 标头实例的哈希码。哈希码基于 HTTP 标头
map的组件,并满足Object.hashCode方法的一般约定。 -
toString
将此 HTTP 标头作为字符串返回。 -
of
public static HttpHeaders of(Map <String , List <String >> headerMap, BiPredicate <String , String > filter) 从给定的map返回 HTTP 标头。给定映射的键表示标头名称,其值是该标头名称的字符串标头值列表。HTTP 标头名称可能在 HTTP 协议中出现多次。这样的,多值,标头必须由给定map中的单个条目表示,其条目值是表示多个标头字符串值的列表。在处理之前,将从给定映射及其列表中检索到的所有字符串值中删除前导和尾随空格。只有在过滤后至少包含一个(可能为空字符串)值的标头才会被添加到 HTTP 标头中。
- API 注意:
-
此方法的主要目的是用于测试框架。可以通过
HttpRequestheaders方法之一设置每个请求标头。 - 参数:
headerMap- 包含标头名称和值的映射filter- 一个过滤器,可用于检查给定map中的每个标头名称和值对,以确定是否应该将其添加到 HTTP 标头中- 返回:
- 包含给定标头的 HTTP 标头实例
- 抛出:
NullPointerException- 如果以下任何一个:headerMap,给定map中的键或值,或映射值列表中的条目,或filter,是nullIllegalArgumentException- 如果给定的headerMap包含任意两个相等的键(不考虑大小写);或者如果给定的映射包含任何键,其长度在修剪空格后为0
-