import org.apache.http.HttpEntity; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.SSLContextBuilder; import org.apache.http.conn.ssl.TrustStrategy; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import javax.net.ssl.SSLContext; import java.io.IOException; import java.net.ConnectException; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.sql.SQLRecoverableException;
public void push() {
StringBuilder sb = new StringBuilder();
sb.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:dhcc=\"http://www.dhcc.com.cn\">");
sb.append("<soapenv:Header/>");
sb.append("<soapenv:Body>");
sb.append("<dhcc:HIPMessageServer>");
sb.append("<dhcc:input1></dhcc:input1>");
sb.append("<dhcc:input2>");
sb.append("<![CDATA[");
sb.append("");
sb.append("]]>");
sb.append("</dhcc:input2>");
sb.append("</dhcc:HIPMessageServer>");
sb.append("</soapenv:Body>");
sb.append("</soapenv:Envelope>");
try {
String responseXml = doPostSoap("https://XXX.XXX",sb.toString(),"");
} catch (Exception var7) {
var7.printStackTrace();
}
}
public static String doPostSoap(String url, String soapXml, String soapAction) { log.info("回传地址:"+url); log.info("回传入参:"+soapXml); CloseableHttpClient httpClient = null; CloseableHttpResponse httpResponse = null; String result = ""; // 创建httpClient实例 httpClient = (CloseableHttpClient) getHttpClient(); // 创建httpPost远程连接实例 HttpPost httpPost = new HttpPost(url); // 设置请求头 httpPost.addHeader("Content-Type", "text/xml;charset=UTF-8"); httpPost.setHeader("SOAPAction", soapAction); httpPost.setEntity(new StringEntity(soapXml, "UTF-8")); try { // httpClient对象执行post请求,并返回响应参数对象 httpResponse = httpClient.execute(httpPost); // 从响应对象中获取响应内容 HttpEntity entity = httpResponse.getEntity(); result = EntityUtils.toString(entity); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭资源 if (null != httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null != httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; }
/** * 在调用SSL之前需要重写验证方法,取消检测SSL * 创建ConnectionManager,添加Connection配置信息 * @return HttpClient 支持https */ private static HttpClient getHttpClient() { try { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { //信任所有 public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true; } }).build(); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } catch (KeyManagementException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyStoreException e) { e.printStackTrace(); } return HttpClients.createDefault(); }