在Java 11 HttpClient中如何解决受限标头名称:日期

时间:2018-12-30 16:05:10

标签: java http java-11 java-http-client

以下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似乎都不可能。

1 个答案:

答案 0 :(得分:5)

错误#JDK-8213189

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

在JDK / 12中,将规定使用属性使用其他受限制的标头:

-jdk.httpclient.allowRestrictedHeaders