下面列出了怎么用org.apache.http.impl.client.SystemDefaultCredentialsProvider的API类实例代码及写法,或者点击链接到github查看源代码。
public static HttpClientBuilder builder(
HttpEnvironmentRepositoryProperties environmentProperties)
throws GeneralSecurityException {
SSLContextBuilder sslContextBuilder = new SSLContextBuilder();
HttpClientBuilder httpClientBuilder = HttpClients.custom();
if (environmentProperties.isSkipSslValidation()) {
sslContextBuilder.loadTrustMaterial(null, (certificate, authType) -> true);
httpClientBuilder.setSSLHostnameVerifier(new NoopHostnameVerifier());
}
if (!CollectionUtils.isEmpty(environmentProperties.getProxy())) {
ProxyHostProperties httpsProxy = environmentProperties.getProxy()
.get(ProxyHostProperties.ProxyForScheme.HTTPS);
ProxyHostProperties httpProxy = environmentProperties.getProxy()
.get(ProxyHostProperties.ProxyForScheme.HTTP);
httpClientBuilder
.setRoutePlanner(new SchemeBasedRoutePlanner(httpsProxy, httpProxy));
httpClientBuilder.setDefaultCredentialsProvider(
new ProxyHostCredentialsProvider(httpProxy, httpsProxy));
}
else {
httpClientBuilder.setRoutePlanner(
new SystemDefaultRoutePlanner(ProxySelector.getDefault()));
httpClientBuilder.setDefaultCredentialsProvider(
new SystemDefaultCredentialsProvider());
}
int timeout = environmentProperties.getTimeout() * 1000;
return httpClientBuilder.setSSLContext(sslContextBuilder.build())
.setDefaultRequestConfig(RequestConfig.custom().setSocketTimeout(timeout)
.setConnectTimeout(timeout).build());
}
protected SystemDefaultCredentialsProvider createCredentialsProvider() {
return new SystemDefaultCredentialsProvider();
}