java.lang.Object
java.net.http.HttpHeaders
一个HTTP头部集合的只读视图。
HttpHeaders
通常不会直接创建,而是从HttpRequest
或HttpResponse
返回。可以通过请求构建器的一个headers
方法为请求设置特定的HTTP头部。
这个类的方法(接受一个字符串头部名称的方法)和map
方法返回的Map
在检索头部值时不考虑大小写。
HTTP头部名称可能在HTTP协议中出现多次。因此,头部被表示为名称和值列表。每个头部值的出现都会原样添加到适当的头部名称列表中,而不解释其值。特别是,HttpHeaders
不执行任何拆分或连接逗号分隔的头部值字符串。在构建请求时,头部值列表中元素的顺序被保留。对于响应,头部值列表中元素的顺序是它们接收到的顺序。然而,map
方法返回的Map
不提供关于其条目排序的任何保证。
HttpHeaders
实例是不可变的。
- 自:
- 11
-
Method Summary
Modifier and TypeMethodDescription返回给定命名头部的所有头部字符串值的不可修改列表。final boolean
用给定对象测试此HTTP头部实例的相等性。firstValue
(String name) 返回一个包含给定命名(可能是多值的)头部的第一个头部字符串值的Optional
。firstValueAsLong
(String name) 返回一个包含命名头部字段的第一个头部字符串值的OptionalLong
。final int
hashCode()
为此HTTP头部实例计算哈希码。map()
返回此HttpHeaders的不可修改多Map视图。static HttpHeaders
从给定的map返回一个HTTP头部。toString()
将此HTTP头部作为字符串返回。
-
Method Details
-
firstValue
返回一个包含给定命名(可能是多值的)头部的第一个头部字符串值的Optional
。如果头部不存在,则返回的Optional
为空。- 参数:
-
name
- 头部名称 - 返回:
-
一个
Optional<String>
,包含第一个命名头部字符串值(如果存在)
-
firstValueAsLong
返回一个包含命名头部字段的第一个头部字符串值的OptionalLong
。如果头部不存在,则Optional
为空。如果头部存在但包含无法解析为Long
值的值,则会抛出异常。- 参数:
-
name
- 头部名称 - 返回:
-
一个
OptionalLong
- 抛出:
-
NumberFormatException
- 如果找到一个值,但无法解析为Long
-
allValues
返回给定命名头部的所有头部字符串值的不可修改列表。如果头部不存在,则始终返回一个列表,该列表可能为空。- 参数:
-
name
- 头部名称 - 返回:
- 一个头部字符串值列表
-
map
返回此HttpHeaders的不可修改多Map视图。- 返回:
- Map
-
equals
用给定对象测试此HTTP头部实例的相等性。如果给定对象不是
HttpHeaders
,则此方法返回false
。如果每个对应的map都相等,则两个HTTP头部相等。此方法满足
Object.equals
方法的一般约定。 -
hashCode
public final int hashCode()为此HTTP头部实例计算哈希码。哈希码基于HTTP头部
map
的组件,并满足Object.hashCode
方法的一般约定。 -
toString
返回此HTTP头部作为字符串。 -
of
从给定的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
的键(在修剪空格后)
-