use*_*821 7 java http java-http-client java-11
以下java 11代码:
HttpRequest request = HttpRequest.newBuilder()
.uri(uri)
.header("Digest", digest)
.header("Date", date)
.build();
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: restricted header name: "Date"
Run Code Online (Sandbox Code Playgroud)
问题是摘要是基于日期的,所以我不能简单地依赖于http客户端日期,因为这会使摘要无效.我需要一种方法来设置Date标头,或者检索Date标头,然后设置摘要.标准java 11似乎都不可能.
这是在当前JDK的http-client实现中注册的错误,其中Date
也将其归类为受限制的标头.
在JDK/12中,将允许使用该属性允许其他此类受限标头:
-jdk.httpclient.allowRestrictedHeaders
Run Code Online (Sandbox Code Playgroud)