09_httpclietn测试SOAP协议
Posted HigginCui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了09_httpclietn测试SOAP协议相关的知识,希望对你有一定的参考价值。
【工程截图】注意:无需使用Wsimport生成客户端代码
【HttpClient.java】
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class HttpClient { public static void main(String[] args) throws IOException { //开启 一个http链接 //webservice地址 URL url = new URL("http://127.0.0.1:12345/weather"); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); //设置post请求,post是大写 httpURLConnection.setRequestMethod("POST"); //Content-Type: text/xml; charset=utf-8 httpURLConnection.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); //设置请求和响应 httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); String requestString = requestString("郑州"); //发送soap协议 httpURLConnection.getOutputStream().write(requestString.getBytes()); //接收响应内容 InputStream inputStream = httpURLConnection.getInputStream(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int len=-1; byte[] b = new byte[1024]; //将inputStream内容写到byteArrayOutputStream while((len= inputStream.read(b, 0, 1024))!=-1){ byteArrayOutputStream.write(b, 0, len); } //获取响应内容 String responseString = byteArrayOutputStream.toString(); System.out.println(responseString); //解析响应的xml数据。 //.... inputStream.close(); byteArrayOutputStream.close(); } /** <?xml version="1.0" ?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:queryWeather xmlns:ns2="http://server.weather.jaxws.Higgin.com/"> <arg0>郑州</arg0> </ns2:queryWeather> </S:Body> </S:Envelope> */ //soap协议内容,请求的 内容 private static String requestString(String cityName){ String xmlString = "<?xml version=\\"1.0\\" ?>" + "<S:Envelope xmlns:S=\\"http://schemas.xmlsoap.org/soap/envelope/\\">" + "<S:Body>" + "<ns2:queryWeather xmlns:ns2=\\"http://server.weather.jaxws.Higgin.com/\\">" + "<arg0>"+cityName+"</arg0>" + "</ns2:queryWeather>" + "</S:Body>" + "</S:Envelope>"; return xmlString; } }
【运行结果】
(注意:要先开启WebService服务)
(需要进一步解析出自己所需的数据,使用正则表达式)
以上是关于09_httpclietn测试SOAP协议的主要内容,如果未能解决你的问题,请参考以下文章
python实现建立soap通信(调用及测试webservice接口)
JMeter4.0学习之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发