首页 > 技术文章 > 数据接口是xml的请求与使用的soapUI

lgl1209 2019-01-26 15:14 原文

最近公司给了一个项目,其实很简单的页面,就是看到接口时是xml,然后我就有看些相关的资料,我们最主要使用的还是要借助于soapUI测试工具,这个测试工具也是很好用的,

接下来先说一下soapUI这个测试工具吧,我觉得还是蛮不错的这个。

我是从网上找的wsdl地址,点击完ok后会出现方法名

双击request 1出现xml请求体

 

运行完之后紧接着就是返回的xml数据

 

 现在知道请求体和返回的数据是什么了,直接就可以用ajax请求了,

 $.ajax({

  url:  'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx',

  type: 'post',

  // 这个可写可不写,不写的话需要让后台给配置好  用nginx

  Content-Type: text/xml; charset=utf-8,

  data: '放入第三张图片的请求体',

  success: function (msg) {

    // 这样在控制台上会报415和跨域问题,

    // 这样解决的话nginx配置吧

    console.log(msg)

    //  解决完跨域问题之后就会得到xml数据

    // 在这时你还是会看到控制台上会出现xml解析错误,但是不影响数据出现,这个问题是数据返回时前面的东西(这个要看你的电脑上有没有出现,我的写的就没有出现,别人写的就出现了。)

    

    // 需要先转一下,在用replace替换成空的,就不会再报错,

    // 最后使用jquery获取dom元素节点来循环数据,渲染页面就可以了。

  

    //  代码

    var oSerializer = new XMLSerializer();

    msg = oSerializer.serializeToString(msg);  //  转成了字符串

    // 因为会报xml解析错误,所以转成字符串,用正则替换成空  在查找dome元素循环并找到文本追加到页面

    $(msg.replace("<?xml version="1.0"' encoding="utf-8"?>", "").find("getSupportCityResult>s

tring").each(function() {

      $("body").append($(this).html()).append("<br>")

    }))

  }

})

 

如果自己想看一下效果的话,可以下载个nginx,在nginx里面配置请求跨域的头和url设置可访问的(url在nginx设置了之后,请求时的url需要改变了,也就是本地的ip+端口号)

都配置好了之后记得启动一下nginx.exe。

 

最后将ajax请求的url ('http://www.webxml.com.cn/WebServices/WeatherWebService.asmx')    换成   http://172.0.0.1:8080/WebServices/WeatherWebService.asmx;

这样页面就可以了,成功打印返回数据就可以了。

 

推荐阅读