下面列出了怎么用org.apache.http.impl.conn.BasicClientConnectionManager的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public DefaultHttpClient create(final HttpMethod method, final URI uri) {
final TrustStrategy acceptTrustStrategy = new TrustStrategy() {
@Override
public boolean isTrusted(final X509Certificate[] certificate, final String authType) {
return true;
}
};
final SchemeRegistry registry = new SchemeRegistry();
try {
final SSLSocketFactory ssf =
new SSLSocketFactory(acceptTrustStrategy, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
registry.register(new Scheme(uri.getScheme(), uri.getPort(), ssf));
} catch (Exception e) {
throw new ODataRuntimeException(e);
}
final DefaultHttpClient httpClient = new DefaultHttpClient(new BasicClientConnectionManager(registry));
httpClient.getParams().setParameter(CoreProtocolPNames.USER_AGENT, USER_AGENT);
return httpClient;
}
protected void initClient(DatabricksServiceFactory.Builder builder) {
try {
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null, null, new SecureRandom());
SSLSocketFactory sf = new SSLSocketFactory(sslContext);
Scheme httpsScheme = new Scheme("https", HTTPS_PORT, sf);
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(httpsScheme);
ClientConnectionManager cm = new BasicClientConnectionManager(schemeRegistry);
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, builder.getConnectionTimeout());
HttpConnectionParams.setSoTimeout(params, builder.getSoTimeout());
DefaultHttpClient defaultHttpClient = new DefaultHttpClient(cm, params);
defaultHttpClient.setHttpRequestRetryHandler(retryHandler);
// set authorization header if token base
if (isNotEmpty(builder.getToken())) {
isTokenAuth = true;
authToken = builder.getToken();
} else if (isNotEmpty(builder.getUsername()) && isNotEmpty(builder.getPassword())) {
defaultHttpClient.getCredentialsProvider().setCredentials(
new AuthScope(host, HTTPS_PORT),
new UsernamePasswordCredentials(builder.getUsername(), builder.getPassword()));
}
client = new AutoRetryHttpClient(defaultHttpClient, retryStrategy);
} catch (Exception e) {
logger.error("", e);
}
url = String.format("https://%s/api/%s", host, apiVersion);
mapper = new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_DEFAULT);
}
@Override
public CloseableHttpClient newInstance() {
try {
final SSLSocketFactory socketFactory = new SSLSocketFactory(this.getSSLContext());
socketFactory.setHostnameVerifier(new UnsafeHostNameVerifier());
final SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("https", 443, socketFactory));
final ClientConnectionManager clientConnectionManager = new BasicClientConnectionManager(schemeRegistry);
return new DefaultHttpClient(clientConnectionManager);
} catch (final KeyManagementException | NoSuchAlgorithmException ex) {
throw new RuntimeException("Unable to instantiate HTTP Client", ex);
}
}