模块  java.net.http
软件包  java.net.http

Class HttpHeaders


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

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

    此类的方法(即接受String标题名称),并Map由返回map方法,检索标头值(S)时,不考虑操作以如此。

    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)
        返回给定命名头的所有头字符串值的不可修改的List。 始终返回List,如果标头不存在,则可能为空。
        参数
        name - 标题名称
        结果
        标题字符串值列表
      • map

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

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

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

        该方法满足Object.equals方法的一般合同。

        重写:
        equals在类 Object
        参数
        obj - 要与此对象进行比较的对象
        结果
        true当且仅当给定对象是 HttpHeaders ,才等于此HTTP头
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString()
        以字符串形式返回此HTTP标头。
        重写:
        toString在类 Object
        结果
        描述HTTP标头的字符串
      • 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