工作中的需要,使用Apache httpclient发起获取通过https返回的内容,试了很多网上的解决办法都不行,查阅了Apache httpclient的官方文档,最后终于找出解决方法,分享给需要的朋友,免得走弯路。使用时,调用getSSL方法即可获取https地址返 ...
工作中的需要,使用Apache httpclient发起获取通过https返回的内容,试了很多网上的解决办法都不行,查阅了Apache httpclient的官方文档,最后终于找出解决方法,分享给需要的朋友,免得走弯路。
使用时,调用getSSL方法即可获取https地址返回的内容。
代码如下:
public static String getSSL(String url, String responseDecode) throws IOException { CloseableHttpClient httpclient = createSSLInsecureClient(); CloseableHttpResponse response = null; String content = null; try { HttpGet httpget = new HttpGet(url); RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000) .setConnectionRequestTimeout(5000).build(); httpget.setConfig(requestConfig); response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); if (entity != null) { content = EntityUtils.toString(entity); EntityUtils.consume(entity); } } catch (ParseException e) { logger.error("request URL[" + url + "] error", e); throw e; } catch (IOException e) { logger.error("request URL[" + url + "] error", e); throw e; } finally { if (response != null) { try { response.close(); } catch (IOException e) { logger.error("", e); } } if (httpclient != null) { try { httpclient.close(); } catch (IOException e) { logger.error("", e); } } } return content; } private static CloseableHttpClient createSSLInsecureClient() { try { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { @Override public boolean isTrusted(java.security.cert.X509Certificate[] arg0, String arg1) { return true; } }).build(); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext); return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } catch (KeyManagementException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyStoreException e) { e.printStackTrace(); } return HttpClients.createDefault(); } public static void main(String[] args) { ShiroUser user = UMSHelper.invoke("10001", "10102130023000"); System.out.println(user); }
原标题:httpclient发起https请求以及获取https返回内容
关键词:ie
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。