В Java 11 HttpClient, как решить ограниченное имя заголовка: Дата - PullRequest
0 голосов
/ 30 декабря 2018

Следующий код 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 голосов
/ 30 декабря 2018

Ошибка # JDK-8213189

Это ошибка, зарегистрированная в текущей реализации http-клиента JDK, где Date также классифицируется как ограниченный заголовок .

В JDK / 12 будет предусмотрено, что другие такие ограниченные заголовки могут быть разрешены с использованием атрибута:

-jdk.httpclient.allowRestrictedHeaders
...