pom.xml依赖:
org.apache.httpcomponents httpclient 4.5.3
public static String getSoapRequest(String getUrl, String soapXml, String soapAction, String userName, String password) throws UnsupportedEncodingException { String retStr = ""; // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); // 设置BasicAuth CredentialsProvider provider = new BasicCredentialsProvider(); // Create the authentication scope AuthScope scope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM); // Create credential pair,在此处填写用户名和密码 UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(userName, password); // Inject the credentials provider.setCredentials(scope, credentials); // Set the default credentials provider httpClientBuilder.setDefaultCredentialsProvider(provider); // HttpClient CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); HttpGet httpGet = new HttpGet(getUrl); // 设置请求和传输超时时间 RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeout).setConnectTimeout(connectTimeout).build(); httpGet.setConfig(requestConfig); try {// httpGet.setHeader("Content-Type", "text/xml;charset=UTF-8"); StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); httpGet.setHeader("SOAPAction", soapAction); CloseableHttpResponse response = closeableHttpClient.execute(httpGet); HttpEntity httpEntity = response.getEntity(); if (httpEntity != null) { // 打印响应内容 retStr = EntityUtils.toString(httpEntity, "UTF-8"); logger.info("response:" + retStr); } // 释放资源 closeableHttpClient.close(); } catch (Exception e) { logger.error("exception in doGetRequest", e); } return retStr; }
post请求:
static int socketTimeout = 30000;// 请求超时时间 static int connectTimeout = 30000;// 传输超时时间 static Logger logger = Logger.getLogger(HttpClientSoapUtil.class); /** * 使用SOAP1.1发送消息,可调1.1,也可调用1.2 */ public static String doPostSoap1_1WithBasicAuth(String postUrl, String soapXml, String soapAction, String userName, String password) { String retStr = ""; // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); // 设置BasicAuth CredentialsProvider provider = new BasicCredentialsProvider(); // Create the authentication scope AuthScope scope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM); // Create credential pair,在此处填写用户名和密码 UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(userName, password); // Inject the credentials provider.setCredentials(scope, credentials); // Set the default credentials provider httpClientBuilder.setDefaultCredentialsProvider(provider); // HttpClient CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); HttpPost httpPost = new HttpPost(postUrl); // 设置请求和传输超时时间 RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeout).setConnectTimeout(connectTimeout).build(); httpPost.setConfig(requestConfig); try { httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); httpPost.setHeader("SOAPAction", soapAction); StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); httpPost.setEntity(data); CloseableHttpResponse response = closeableHttpClient.execute(httpPost); HttpEntity httpEntity = response.getEntity(); if (httpEntity != null) { // 打印响应内容 retStr = EntityUtils.toString(httpEntity, "UTF-8"); logger.info("response:" + retStr); } // 释放资源 closeableHttpClient.close(); } catch (Exception e) { logger.error("exception in doPostSoap1_1", e); } return retStr; }