以下 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 header ,或者检索 Date header 然后设置摘要。标准 Java 11 似乎都不可能。
最佳答案
漏洞# JDK-8213189
这是在当前 JDK 的 http-client 实现中注册的错误,其中日期
也被归类为受限 header 。
在 JDK/12 中,将允许使用以下属性允许其他此类受限 header :
-jdk.httpclient.allowRestrictedHeaders
关于java - 在 Java 11 HttpClient 中如何解决受限 header 名称 : Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53979173/