package com.souche.sts.common.util;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import java.nio.charset.Charset;
/**
* @program: sts
*
* @description:
*
* @author: heqiang
*
* @create: 2019-07-19 11:05
**/
public class httpTest {
public static void main(String[] args) {
String a =
"<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:log=\"http://login.webservice.bos.kingdee.com\">\n"
+ " <soapenv:Header/>\n" + " <soapenv:Body>\n"
+ " <log:login soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">\n"
+ " <userName xsi:type=\"xsd:string\">user</userName>\n"
+ " <password xsi:type=\"xsd:string\">dsc@123</password>\n"
+ " <slnName xsi:type=\"xsd:string\">eas</slnName>\n"
+ " <dcName xsi:type=\"xsd:string\">D001</dcName>\n"
+ " <language xsi:type=\"xsd:string\">l2</language>\n"
+ " <dbType xsi:type=\"xsd:int\">2</dbType>\n" + " </log:login>\n"
+ " </soapenv:Body>\n" + "</soapenv:Envelope>";
String url = "http://fin.proxy.dasouche.com/ormrpc/services/EASLogin?wsdl";
String r = doPostSoap1_1(url, a, "");
System.out.println(r);
}
static int socketTimeout = 300000;// 请求超时时间
static int connectTimeout = 300000;// 传输超时时间
/**
* 使用SOAP1.1发送消息
*
* @param postUrl
* @param soapAction
* @return
*/
public static String doPostSoap1_1(String postUrl, String xml, String soapAction) {
String retStr = "";
// 创建HttpClientBuilder
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
// 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(xml, 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");
}
// 释放资源
closeableHttpClient.close();
} catch (Exception e) {
}
retStr = StringEscapeUtils.unescapeHtml(retStr);
return retStr;
}
}