主要jar包:https://pan.baidu.com/s/1o7EvbZk
httpclient-4.2.5
httpcore-4.2.4
package com.util.wxutil;
import javax.net.ssl.X509TrustManager;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
/**
* 證書信任管理器(用于https請求)
* Created by admin on 2017/11/14.
*/
public class MyX509TrustManager implements X509TrustManager {
//檢查用戶端證書
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
//檢查伺服器端證書
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
//傳回受信任的x509數組
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}
package com.util.wxutil;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
import java.security.SecureRandom;
/**
* Created by admin on 2017/11/14.
*/
public class HttpsREQUEST {
/**
* 發送https請求
*
* @param requestUrl
* 請求位址
* @param requestMethod
* 請求方式(GET、POST)
* @param outStr
* 送出的資料
* @return JSONObject(通過JSONObject.get(key)的方式擷取json對象的屬性值)
*/
public static String HttpsRequest(String requestUrl, String requestMethod, String outStr) throws Exception{
// 建立 SSLContext
SSLContext sslContext = SSLContext.getInstance("SSL","SunJSSE");
TrustManager[] trustManagers = {new MyX509TrustManager()};
// 初始化
sslContext.init(null,trustManagers,new SecureRandom());
// 擷取 sslSocketFactory 對象
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
// 設定目前執行個體使用
StringBuffer buffer = null;
// 傳遞的URL
URL url = new URL(requestUrl);
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
// 請求方式
connection.setRequestMethod(requestMethod);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setSSLSocketFactory(sslSocketFactory);
connection.connect();
if (outStr != null){
OutputStream outputStream = connection.getOutputStream();
outputStream.write(outStr.getBytes("utf-8"));
outputStream.close();
}
// 讀取服務端内容
InputStream inputStream = connection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
buffer = new StringBuffer();
String line = null;
while((line = bufferedReader.readLine()) != null){
buffer.append(line);
}
// System.out.println(buffer.toString());
return buffer.toString();
}
}