https请求跳过证书(GET)
话不多说直接上代码
package com.quanzhi.api.operation.common.util.utils;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
public class HttpsClientUtil {
private static X509TrustManager tm =new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] xcs, String string)throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] xcs, String string)throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
@SuppressWarnings("deprecation")
public static HttpClient getInstance()throws KeyManagementException,NoSuchAlgorithmException {
HttpClient client =new DefaultHttpClient();
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null,new TrustManager[] {tm },null);
SSLSocketFactory ssf =new SSLSocketFactory(ctx);
ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
ClientConnectionManager ccm = client.getConnectionManager();
SchemeRegistry sr = ccm.getSchemeRegistry();
sr.register(new Scheme("https", ssf,443));
client =new DefaultHttpClient(ccm, client.getParams());
return client;
}
public static void get (String url, Header[] headers) {
JSONObject jsonResult =null;
try {
HttpClient httpsClient = null;
httpsClient = HttpsClientUtil.getInstance();
HttpGet request =new HttpGet(url);
request.setHeaders(headers);
HttpResponse response = httpsClient.execute(request);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 成功逻辑
} else {
//失败逻辑
}
} catch (Exception e) {
}
}
public static void get (String url) {
JSONObject jsonResult =null;
try {
HttpClient httpsClient = null;
httpsClient = HttpsClientUtil.getInstance();
HttpGet request =new HttpGet(url);
HttpResponse response = httpsClient.execute(request);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 成功逻辑
} else {
// 失败逻辑
}
} catch (Exception e) {
}
}
}