private CloseableHttpClient buildHttpClient() {
HttpClientBuilder cb = HttpClientBuilder
.create()
.disableAutomaticRetries()
.setSSLHostnameVerifier(new NoopHostnameVerifier())
.setRetryHandler(new DefaultHttpRequestRetryHandler(10, true))
.setDefaultRequestConfig(
RequestConfig.custom().setConnectTimeout(60 * 1000)
.setSocketTimeout(60 * 1000).build());
try {
// set ssl context
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, new TrustManager[] { new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
@Override
public void checkServerTrusted(X509Certificate[] arg0,
String arg1) {
}
@Override
public void checkClientTrusted(X509Certificate[] arg0,
String arg1) {
}
} }, null);
cb.setSslcontext(ctx);
} catch (GeneralSecurityException ex) {
throw new RuntimeException(ex);
}
if (this.getUsername() != null && this.getPassword() != null) {
CredentialsProvider cp = new BasicCredentialsProvider();
cp.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(
this.getUsername(), this.getPassword()));
cb.setDefaultCredentialsProvider(cp);
}
return cb.build();
}