java ssm框架 soap请求
SOAP 使用 http 传送 xml,在web客户端与服务端传递数据,写法较为简单。个人感觉远程请求用soap比较好用,虽然速度上慢了一些(解析xml耗费时间)
请求体:
StringBuilder sb=new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"+
"<soap:Body>"+
"<Sales xmlns=\"http://order.org/\">"+
"<pa>pa</pa>"+ //参数pa
"<custPo>custPo</custPo>"+ //参数custPo
"</Sales>"+
"</soap:Body>"+
"</soap:Envelope>");
发送请求
String requestBody = sb.toString();
//请求url
String urlString = http://****?op=Sales;
//soap action(打开请求url可以看到,不可少)
String soapActionString = "http://****/Sales";
URL url = new URL(urlString);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
//设置和发送请求
httpConn.setRequestProperty("Content-Length", String.valueOf(sb.toString().length()));
httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
httpConn.setRequestProperty("SOAPAction", soapActionString);
httpConn.setRequestMethod("POST");
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
OutputStream out = httpConn.getOutputStream();
byte b[] = sb.toString().getBytes();
out.write(b);
out.close();
byte[] datas=readInputStream(httpConn.getInputStream());
//断开连接
httpConn.disconnect();
String result=new String(datas);
result即为请求结果。
两段代码写到一块即可。
代码亲测可用,第一次写博客,哪里不对还请大神指正出来。