webService 接口调用
前言
提示:这里可以添加本文要记录的大概内容:
例如:最近遇到如下的接口地址,webservice,对于小白的我无从下手。
提示:以下是本篇文章正文内容,下面案例可供参考
一、工作记录
地址:http://IP地址/IMWS/ERPService.asmx?wsdl。
二、使用步骤
1.引入依赖
代码如下(示例):
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version><!--$NO-MVN-MAN-VER$-->
</dependency>
2.代码如下
代码如下(示例):
public static String doPost(ErpReceive erpEntity) throws IOException, DocumentException {
//第一步:创建服务地址
URL url = new URL(erpEntity.getUrl());
//第二步:打开一个通向服务地址的连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//第三步:设置参数
//3.1发送方式设置:POST必须大写
connection.setRequestMethod("POST");
//3.2设置数据格式:content-type
connection.setRequestProperty("content-type", "text/xml;charset=utf-8");
//3.3设置输入输出,因为默认新创建的connection没有读写权限,
connection.setDoInput(true);
connection.setDoOutput(true);
//第四步:组织SOAP数据,发送请求
String soapXML = getXML(erpEntity.getOrgCode(),erpEntity.getUserCode(),erpEntity.getBizType(),erpEntity.getBizContent());
//将信息以流的方式发送出去
OutputStream os = connection.getOutputStream();
os.write(soapXML.getBytes("UTF-8"));
//第五步:接收服务端响应,打印
int responseCode = connection.getResponseCode();
String response = "";
if(200 == responseCode){//表示服务端响应成功
//获取当前连接请求返回的数据流
InputStream is = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String temp = null;
while(null != (temp = br.readLine())){
sb.append(temp);
}
Document doc = DocumentHelper.parseText(sb.toString());
Element rootElt = doc.getRootElement();
Iterator<?> iter = rootElt.elementIterator("Body");
while (iter.hasNext()) {
Element recordEless = (Element) iter.next();
Iterator<?> itersElIterator = recordEless.elementIterator("ExecSVResponse");
while (itersElIterator.hasNext()){
Element itemEle = (Element) itersElIterator.next();
response = itemEle.elementTextTrim("ExecSVResult");
}
}
is.close();
isr.close();
br.close();
}
os.close();
return response;
}
```public static String getXML(String OrgCode,String UserCode,String BizType,String BizContent){
String soapXML ="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">\n" +
" <soapenv:Header/>\n" +
" <soapenv:Body>\n" +
" <tem:ExecSV>\n" +
" <!--Optional:-->\n" +
" <tem:OrgCode>"+OrgCode+"</tem:OrgCode>\n" +
" <!--Optional:-->\n" +
" <tem:UserCode>"+UserCode+"</tem:UserCode>\n" +
" <!--Optional:-->\n" +
" <tem:BizType>"+BizType+"</tem:BizType>\n" +
" <!--Optional:-->\n" +
" <tem:BizContent>"+BizContent+"</tem:BizContent>\n" +
" </tem:ExecSV>\n" +
" </soapenv:Body>\n" +
"</soapenv:Envelope>";
return soapXML;
}
---
# 总结
`提示:这里对文章进行总结:`
简单记录工作中遇到的一些问题