Apache Httpclient 4.5.13 支持预认证,可以通过设置 CredentialsProvider 来实现。
示例代码如下:
CloseableHttpClient httpClient = HttpClients.custom().build();
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
httpClient = HttpClients.custom().setDefaultCredentialsProvider(credentialsProvider).build();
HttpGet request = new HttpGet(url);
HttpResponse response = httpClient.execute(request);
其中,CredentialsProvider
是 Apache Httpclient 提供的接口,用于提供预认证的用户名和密码。在该示例中,我们使用了 BasicCredentialsProvider
,并通过 setCredentials
方法将预认证信息添加到 CredentialsProvider
中。另外,在创建 httpClient
实例时,我们通过 setDefaultCredentialsProvider
方法将 CredentialsProvider
设置为默认值。
这样,当我们向指定的 url
发送请求时,Apache Httpclient 将自动使用预认证信息进行认证,以避免出现 401 Unauthorized 的响应。
上一篇:Apachehttpclient/Java:率限制(429)
下一篇:Apachehttpclient4.5.2重试时未通过ServiceUnavailableRetryStrategy发送POST数据。