Java 11 HttpClient如何解决受限header name: Date

In Java 11 HttpClient how to solve restricted header name: Date

以下java11码:

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 客户端日期,因为那样会使摘要无效。 我需要一种方法来设置日期 header,或者检索日期 header 然后设置摘要。标准 java 11.

似乎都不可能

错误#JDK-8213189

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

在 JDK/12 中,将允许使用属性的其他此类受限 header:

-jdk.httpclient.allowRestrictedHeaders