//import相关类
importjava.io.FileInputStream;
importjava.security.KeyStore;
importjava.util.Date;
importjava.util.List;
importjava.util.Map;
.ssl.KeyManagerFactory;
.ssl.SSLContext;
.ssl.SSLSocketFactory;
.ssl.TrustManager;
mons.logging.Log;
mons.logging.LogFactory;
importorg.apache.http.HttpEntity;
importorg.apache.http.client.methods.CloseableHttpResponse;
importorg.apache.http.client.methods.HttpPost;
importorg.apache.http.conn.ssl.SSLConnectionSocketFactory;
importorg.apache.http.entity.StringEntity;
importorg.apache.http.impl.client.CloseableHttpClient;
importorg.apache.http.impl.client.HttpClients;
importorg.apache.http.util.EntityUtils;
importorg.springframework.web.context.ContextLoader;
//加载密钥
KeyStoreclientKeyStore=KeyStore.getInstance("PKCS12");
clientKeyStore.load(newFileInputStream(,);
//加载密钥
KeyStoreclientTrustKeyStore=KeyStore.getInstance("PKCS12");
clientTrustKeyStore.load(newFileInputStream(,);
//密钥工厂
KeyManagerFactorykmf=KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(clientKeyStore,);
//通道信任
TrustManager[]tm={newMyX509TrustManager()};
//通道协议
SSLContextsslContext=SSLContext.getInstance("TLSv1");
sslContext.init(kmf.getKeyManagers(),tm,newjava.security.SecureRandom());
//通道工厂
SSLSocketFactorysocketFactory=sslContext.getSocketFactory();
//创建通道端口
SSLConnectionSocketFactorysslsf=newSSLConnectionSocketFactory(socketFactory,SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
CloseableHttpClienthttpclient=HttpClients.custom().setSSLSocketFactory(sslsf).build();
//开始调用
HttpPosthttppost=newHttpPost();
httppost.addHeader("Connection","keep-alive");
httppost.addHeader("Accept","*/*");
httppost.addHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
httppost.addHeader("Host","api.mch.");
httppost.addHeader("X-Requested-With","XMLHttpRequest");
httppost.addHeader("Cache-Control","max-age=0");
httppost.addHeader("User-Agent","Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.0)");
httppost.setEntity(newStringEntity(,"utf-8"));
//调用
CloseableHttpResponseresponse=httpclient.execute(httppost);
HttpEntityentity=response.getEntity();
//获取返回的字符串
Stringresult=newString(EntityUtils.toString(entity,"gbk").getBytes(),"utf-8");
//此处用到了一个类
importjava.security.cert.CertificateException;
importjava.security.cert.X509Certificate;
.ssl.X509TrustManager;
publicclassMyX509TrustManagerimplementsX509TrustManager{
publicvoidcheckClientTrusted(X509Certificate[]chain,StringauthType)throwsCertificateException{}
publicvoidcheckServerTrusted(X509Certificate[]chain,StringauthType)throwsCertificateException{}
publicX509Certificate[]getAcceptedIssuers(){
returnnull;
}
}