相关疑难解决方法(0)

如何使用 Java 11 HTTP 客户端进行抢先身份验证?

我正在尝试使用基本身份验证对经过身份验证的服务使用 Java 11 HTTP 客户端。身份验证成功进行,但它会与服务器进行额外的往返,以了解它应该发送身份验证数据。

已搜索文档和代码,在内部某个时刻它使用某种缓存,但我无法设置缓存值。

这是我的客户端代码:

HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("http://someurl.com"))
        .build();

HttpClient client = HttpClient.newBuilder()
        .authenticator(new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("user", "pass".toCharArray());
            }
        })
        .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
Run Code Online (Sandbox Code Playgroud)

我期望的是,我可以以某种方式告诉客户端抢先发送身份验证数据,而不仅仅是在服务器请求时发送。

basic-authentication java-http-client java-11

4
推荐指数
1
解决办法
3404
查看次数