WebService学习(十三)——调用webservice的方式(其他方式)
作者:互联网
1.使用ajax调用
2.通过URLConnection调用
- var xhr;
- function invoke(){
- if(window.ActiveXObject){
- xhr = new ActiveXObject("Microsoft.XMLHTTP");
- }else{
- xhr = new XMLHttpRequest();
- }
- //指定请求地址
- var url = "http://127.0.0.1:7777/hello?wsdl";
- //定义请求类型和地址和异步
- xhr.open("POST", url, true);
- //设置Content-Type
- xhr.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");
- //指定回调方法
- xhr.onreadystatechange = back;
- var textVal = document.getElementById("mytext").value;
- //组装消息体的数据
- var data = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://server.hm.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
- +'<soapenv:Body>'
- +'<q0:sayHello>'
- +'<arg0>'+textVal+'</arg0>'
- +'</q0:sayHello>'
- +'</soapenv:Body>'
- +'</soapenv:Envelope>';
- xhr.send(data);
- }
- function back(){
- if(xhr.readyState == 4){
- if(xhr.status == 200){
- var doc = xhr.responseXML;
- alert(doc);
- alert(xhr.responseText);
- var tag = doc.getElementsByTagName("return")[0];
- alert(tag)
- }
- }
- }
3、使用jquery调用cxf
- //创建url地址
- URL url = new URL("http://192.168.1.104:8080/hello");
- //打开连接
- URLConnection conn = url.openConnection();
- //转换成HttpURL
- HttpURLConnection httpConn = (HttpURLConnection) conn;
- //打开输入输出的开关
- httpConn.setDoInput(true);
- httpConn.setDoOutput(true);
- //设置请求方式
- httpConn.setRequestMethod("POST");
- //设置请求的头信息
- httpConn.setRequestProperty("Content-type", "text/xml;charset=UTF-8");
- //拼接请求消息
- String data = "<soapenv:Envelope xmlns:soapenv=" +
- "\"http://schemas.xmlsoap.org/soap/envelope/\" " +
- "xmlns:q0=\"http://server.rl.com/\" " +
- "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
- "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
- +"<soapenv:Body>"
- +"<q0:sayHello>"
- +"<arg0>renliang</arg0> "
- +"</q0:sayHello>"
- +"</soapenv:Body>"
- +"</soapenv:Envelope>";
- //获得输出流
- OutputStream out = httpConn.getOutputStream();
- //发送数据
- out.write(data.getBytes());
- //判断请求成功
- if(httpConn.getResponseCode() == 200){
- //获得输入流
- InputStream in = httpConn.getInputStream();
- //使用输入流的缓冲区
- BufferedReader reader = new BufferedReader(new InputStreamReader(in));
- StringBuffer sb = new StringBuffer();
- String line = null;
- //读取输入流
- while((line = reader.readLine()) != null){
- sb.append(line);
- }
- //创建sax的读取器
- SAXReader saxReader = new SAXReader();
- //创建文档对象
- Document doc = saxReader.read(new StringReader(sb.toString()));
- //获得请求响应return元素
- List<Element> eles = doc.selectNodes("//return");
- for(Element ele : eles){
- System.out.println(ele.getText());
- }
- }
- $(function(){
- $("#mybutton").click(function(){
- var data = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://server.web.cxf.rl.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
- +'<soapenv:Body>'
- +'<q0:sayHello>'
- +' <arg0>sss</arg0>'
- +' </q0:sayHello>'
- +'</soapenv:Body>'
- +'</soapenv:Envelope>';
- $.ajax({
- url:'http://localhost:8080/cxf-web-server/services/hello',
- type:'post',
- dataType:'xml',
- contentType:'text/xml;charset=UTF-8',
- data:data,
- success:function(responseText){
- alert($(responseText).find('return').text());
- },
- error:function(){
- alert("error");
- }
- })
- })
- })
标签:http,WebService,方式,xhr,httpConn,var,new,data,webservice 来源: https://blog.csdn.net/weixin_40571495/article/details/86611267