httpclient/RestTemplate,asynchttpclient设置忽略https,ssl证书
来源:互联网 发布:linux服务器系统占有率 编辑:程序博客网 时间:2024/05/22 09:51
1、全局设置(版本4.5)
static { disableSslVerification(); } private static void disableSslVerification() { try{ // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted(X509Certificate[] certs, String authType) { } public void checkServerTrusted(X509Certificate[] certs, String authType) { } } }; // Install the all-trusting trust manager SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); // Create all-trusting host name verifier HostnameVerifier allHostsValid = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; // Install the all-trusting host verifier HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyManagementException e) { e.printStackTrace(); } }2、局部设置(版本:4.5)
RestTemplate restTemplate = new RestTemplate();TrustStrategy acceptingTrustStrategy = new TrustStrategy() {@Overridepublic boolean isTrusted(X509Certificate[] arg0, String arg1)throws CertificateException {return true;}};SSLContext sslContext = SSLContexts.custom() .loadTrustMaterial(null, acceptingTrustStrategy) .build();SSLConnectionSocketFactory sf = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier());Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create() .register("http", PlainConnectionSocketFactory.getSocketFactory()) .register("https", sf) .build();PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);connectionManager.setMaxTotal(DEFAULT_MAX_TOTAL_CONNECTIONS);connectionManager.setDefaultMaxPerRoute(DEFAULT_MAX_CONNECTIONS_PER_ROUTE);connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("facebook.com")), 20);connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("twitter.com")), 20);connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("linkedin.com")), 20);connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("viadeo.com")), 20);RequestConfig config = RequestConfig.custom().setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLISECONDS).setSocketTimeout(DEFAULT_SOCKET_TIMEOUT_MILLISECONDS).setConnectionRequestTimeout(DEFAULT_CONNECTION_REQUEST_MILLISECONDS).build();CloseableHttpClient defaultHttpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).setRetryHandler(new DefaultHttpRequestRetryHandler(2, true)).setKeepAliveStrategy(DefaultConnectionKeepAliveStrategy.INSTANCE).setDefaultRequestConfig(config).build();HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(defaultHttpClient);clientHttpRequestFactory.setBufferRequestBody(false);;restTemplate.setRequestFactory(clientHttpRequestFactory );
3、asynchttpclient(异步httpclient,版本:4.3)
@Beanpublic AsyncClientHttpRequestFactory asyncHttpRequestFactory() {HttpComponentsAsyncClientHttpRequestFactory asyncHttpRequestFactory = new HttpComponentsAsyncClientHttpRequestFactory(asyncHttpClient());asyncHttpRequestFactory.setBufferRequestBody(false);return asyncHttpRequestFactory;}@Bean(name = "asyncRestTemplate")public AsyncRestTemplate asyncRestTemplate() throws Exception {AsyncRestTemplate restTemplate = new AsyncRestTemplate(asyncHttpRequestFactory(), restTemplate());//restTemplate.setInterceptors(Arrays.asList(loggingClientHttpRequestInterceptor));return restTemplate;}@Beanpublic CloseableHttpAsyncClient asyncHttpClient() {try {//ssl support startTrustStrategy acceptingTrustStrategy = new TrustStrategy() {@Overridepublic boolean isTrusted(X509Certificate[] arg0, String arg1)throws CertificateException {return true;}};SSLContext sslcontext = SSLContextBuilder.create() .loadTrustMaterial(null, acceptingTrustStrategy ) .build(); Registry<SchemeIOSessionStrategy> sessionStrategyRegistry = RegistryBuilder.<SchemeIOSessionStrategy>create() .register("http", NoopIOSessionStrategy.INSTANCE) .register("https", new SSLIOSessionStrategy(sslcontext, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)) .build();PoolingNHttpClientConnectionManager connectionManager = new PoolingNHttpClientConnectionManager(new DefaultConnectingIOReactor(IOReactorConfig.DEFAULT),sessionStrategyRegistry);connectionManager.setMaxTotal(DEFAULT_MAX_TOTAL_CONNECTIONS); connectionManager.setDefaultMaxPerRoute(DEFAULT_MAX_CONNECTIONS_PER_ROUTE);connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("facebook.com")), 20);connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("twitter.com")), 20);connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("linkedin.com")), 20);connectionManager.setMaxPerRoute(new HttpRoute(new HttpHost("viadeo.com")), 20);RequestConfig config = RequestConfig.custom().setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLISECONDS).setSocketTimeout(DEFAULT_SOCKET_TIMEOUT_MILLISECONDS).setConnectionRequestTimeout(DEFAULT_CONNECTION_REQUEST_MILLISECONDS).build();CloseableHttpAsyncClient httpclient = HttpAsyncClientBuilder.create().setConnectionManager(connectionManager).setDefaultRequestConfig(config).build();return httpclient;} catch (Exception e) {throw Throwables.propagate(e);}}
阅读全文
0 0
- httpclient/RestTemplate,asynchttpclient设置忽略https,ssl证书
- httpclient https忽略证书
- HttpClient忽略证书访问HTTPS接口
- httpclient https忽略证书直接请求
- HttpClient忽略证书访问HTTPS接口
- httpclient忽略证书验证允许https请求
- HttpClient忽略证书访问HTTPS接口()
- HttpClient忽略证书访问HTTPS接口
- HttpClient配置SSL绕过https证书
- https SSL证书设置步骤
- httpClient设置忽略SSL(trust all)
- 轻松把玩HttpClient之配置ssl,采用设置信任自签名证书实现https
- 轻松把玩HttpClient之配置ssl,采用设置信任自签名证书实现https
- HttpClient之配置ssl,采用设置信任自签名证书实现https
- 通过HttpClient调用接口时忽略SSL证书验证
- httpclient 4.5.2 https协议时忽略服务器证书
- httpclient发送https的get请求忽略证书
- How to disable SSL certificate checking with Spring RestTemplate?(使用resttemplate访问https时禁用证书检查)
- 让文字颜色渐变
- 影评分析初级 nltk 电影语料库
- StringBuffer的用法
- 万能的APT!编译时注解的妙用
- C/C++笔试必须熟悉掌握的头文件系列(二)——math.h/cmath
- httpclient/RestTemplate,asynchttpclient设置忽略https,ssl证书
- 项目中redis连接不上
- 图文并茂的Python散点图教程
- opencv: 视频中提取帧图片并保存(cv2.VideoCapture)
- C/C++、JAVA、C#之间的关系和区别?
- 用eclipse启动tomact后,访问主页404错误解决
- C和指针 13章练习题算是从书上转载的吧
- LeetCode: Add to List 414. Third Maximum Number
- 如何轻松学习C语言