https请求带证书发送报文

public String sendXml(String sendurl, String sendData) throws Exception {
File trustedKeystoreFile = new File(sslTrustStore);
BufferedReader reader = null;
CloseableHttpResponse resp = null;
String resultuestStr1 = null;
try {
SSLContext sslcontext = SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy())
.loadKeyMaterial(trustedKeystoreFile, sslTrustStorePassword.toCharArray(),
sslTrustStorePassword.toCharArray())
.build();

SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslcontext,
new String[] { "TLSv1.2", "TLSv1.1", "TLSv1" }, null, new NoopHostnameVerifier());

CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(sslSocketFactory).build();
HttpPost post = new HttpPost(sendurl);
HttpEntity entity = new StringEntity(sendData, "utf-8");
post.setHeader("Content-type", "text/xml");
post.setEntity(entity);
resp = client.execute(post);
reader = new BufferedReader(new InputStreamReader(resp.getEntity().getContent()));
StringBuilder dataString = new StringBuilder();
String inputLine;
while ((inputLine = reader.readLine()) != null) {
dataString.append(inputLine).append("\n");
}
resultuestStr1 = dataString.toString().replace("&lt;", "<");
} catch (KeyManagementException e1) {
e1.printStackTrace();
} catch (UnrecoverableKeyException e1) {
e1.printStackTrace();
} catch (NoSuchAlgorithmException e1) {
e1.printStackTrace();
} catch (KeyStoreException e1) {
e1.printStackTrace();
} catch (CertificateException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
return resultuestStr1;
}

posted @ 2018-07-27 13:33  努力的小菜  阅读(637)  评论(0编辑  收藏  举报