以下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似乎都不可能。
答案 0 :(得分:5)
这是在当前JDK的http-client实现中注册的错误,其中Date
也被归为受限标头。
在JDK / 12中,将规定使用属性使用其他受限制的标头:
-jdk.httpclient.allowRestrictedHeaders