- java.lang.Object
-
- java.net.http.HttpHeaders
-
public final class HttpHeaders extends Object
一组HTTP标头的只读视图。HttpHeaders
通常不是直接创建的,而是从HttpRequest
或HttpResponse
返回 。 可以通过请求构建器的headers
方法之一为request设置特定的HTTP标头。此类的方法(即接受String标题名称),并
Map
由返回map
方法,检索标头值(S)时,不考虑操作以如此。HTTP标头名称可能在HTTP协议中出现多次。 因此,标题表示为名称和值列表。 每次出现的标题值都会逐字添加到相应的标题名称列表中,而不会解释其值。 特别是,
HttpHeaders
不执行任何拆分或连接逗号分隔的标头值字符串。 当请求building
时,保留标题值列表中元素的顺序。 对于响应,标题值列表中元素的顺序是它们被接收的顺序。 该Map
由返回map
方法,但是,没有提供关于其条目的顺序任何保证。HttpHeaders
实例是不可变的。- 从以下版本开始:
- 11
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 List<String>
allValues(String name)
返回给定命名头的所有头字符串值的不可修改的List。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的不可修改的多Map视图。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)
- 参数
-
name
- 标题名称 - 结果
-
OptionalLong
- 异常
-
NumberFormatException
- 如果找到值,但不解析为Long
-
allValues
public List<String> allValues(String name)
返回给定命名头的所有头字符串值的不可修改的List。 始终返回List,如果标头不存在,则可能为空。- 参数
-
name
- 标题名称 - 结果
- 标题字符串值列表
-
equals
public final boolean equals(Object obj)
测试此HTTP标头实例是否与给定对象相等。如果给定对象不是
HttpHeaders
则此方法返回false
。 如果每个相应的maps相等,则两个HTTP头是相等的。该方法满足
Object.equals
方法的一般合同。- 重写:
-
equals
在类Object
- 参数
-
obj
- 要与此对象进行比较的对象 - 结果
-
true
当且仅当给定对象是HttpHeaders
,才等于此HTTP头 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public final int hashCode()
计算此HTTP标头实例的哈希代码。哈希码基于HTTP头
map
的组件,并且满足Object.hashCode
方法的常规协定。- 重写:
-
hashCode
类Object
- 结果
- 此HTTP标头的哈希码值
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
of
public static HttpHeaders of(Map<String,List<String>> headerMap, BiPredicate<String,String> filter)
返回给定映射的HTTP标头。 给定映射的键表示标题名称,其值表示该标题名称的字符串标题值列表。HTTP标头名称可能在HTTP协议中出现多次。 这样的多值标头必须由给定映射中的单个条目表示,其条目值是表示多个标题字符串值的列表。 在处理之前,从给定映射及其列表中检索的所有字符串值中删除前导和尾随空格。 只有在过滤后包含至少一个可能为空的字符串值的标头才会添加到HTTP标头中。
- API Note:
-
此方法的主要目的是测试框架。
可以通过
HttpRequest
headers
方法之一设置每请求标头。 - 参数
-
headerMap
- 包含标题名称和值的映射 -
filter
- 一个过滤器,可用于检查给定映射中的每个标头名称和值对,以确定是否应将其添加到HTTP标头中 - 结果
- 包含给定标头的HTTP标头实例
- 异常
-
NullPointerException
- 如果存在:headerMap
,给定地图中的某个键或值,或地图的值列表中的条目,或filter
,则为null
-
IllegalArgumentException
- 如果给定的headerMap
包含任意两个相等的密钥(不考虑大小写); 或者,如果给定的地图包含任何键,其长度在修剪空格后为0
-
-