使用到的ohHttp.jar下载地址:https://download.csdn.net/download/qq_37160920/10576350
根据提供的webServiceUrl,methodName,调用接口,并处理返回的xml格式的结果.
代码可以使用postMan生成:
@Test
public void checkValue() {
String url = "http://127.0.0.1:8001/portal.integration/service/IntegrateService";
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("text/xml");
//设置soap请求头,并设置方法名和参数
RequestBody body = RequestBody.create(mediaType, "<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xxx=\"http://tempuri.org/xxx.xsd\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">\r\n <soapenv:Header></soapenv:Header>\r\n <soapenv:Body>\r\n <xxx:checkValue xmlns=\"http://www.w3.org/2001/XMLSchema\">\r\n <sId>123456</sId>\r\n <uId>111111</uId>\r\n </xxx:checkValue>\r\n </soapenv:Body>\r\n</soapenv:Envelope>");
Request request = new Request.Builder()
.url(url)
.post(body)
.addHeader("SOAPAction", "")
.addHeader("Content-Type", "text/xml; charset=utf-8")
.addHeader("cache-control", "no-cache")
.build();
String result = "";
try {
Response response = client.newCall(request).execute();
int code = response.code();
if (200 == code) {
String xmlResult = response.body().string();
if (StringUtils.isNotEmpty(xmlResult)) {
//checkValueResponse,checkValueReturn是根据xmlResult获取的
result = readStringXml(xmlResult, "checkValueResponse", "checkValueReturn");
System.out.println("--------"+result);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
返回的数据(xmlStr):
处理返回的xml格式数据:
public String readStringXml(String xmlStr, String node1, String node2) {
Document doc = null;
String result = "";
try {
doc = DocumentHelper.parseText(xmlStr); //将字符串转换为xml
Element rootElt = doc.getRootElement();//获取根节点
System.out.println("根节点:" + rootElt.getName());
Iterator iters = rootElt.elementIterator("Body"); //获取根节点下的子节点
Element Bodyelement = rootElt.element("Body");
if (Bodyelement != null && Bodyelement.element(node1) != null) {
Element valueElement = Bodyelement.element(node1).element(node2);
if (valueElement != null) {
//0,成功,1失败
result = valueElement.getText();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
————————————————
版权声明:本文为CSDN博主「GL213」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37160920/article/details/86504584