9

以下 java 11 代码:

HttpRequest request = HttpRequest.newBuilder()
            .uri(uri)
            .header("Digest", digest)
            .header("Date", date)  
            .build();

给出以下错误:

Exception in thread "main" java.lang.IllegalArgumentException: restricted header name: "Date"

问题是摘要是基于日期的,所以我不能简单地依赖 http 客户端日期,因为这会使摘要无效。我需要一种方法来设置 Date 标头,或者检索 Date 标头,然后设置摘要。标准 java 11 似乎都不可能。

4

1 回答 1

7

错误# JDK-8213189

这是在当前 JDK 的 http-client 实现中注册的错误,该错误Date 也被归类为受限标头

在 JDK/12 中,将规定使用该属性允许其他此类受限标头:

-jdk.httpclient.allowRestrictedHeaders
于 2018-12-30T16:23:42.640 回答