程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> httpclient發起https請求以及獲取https返回內容,httpclienthttps

httpclient發起https請求以及獲取https返回內容,httpclienthttps

編輯:JAVA綜合教程

httpclient發起https請求以及獲取https返回內容,httpclienthttps


 

工作中的需要,使用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);
	}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved