使用soapUI基于Http调用WebService接口

1.接到需求开发一个服务接口,因原项目是webservice搭建的,所以再此基础上进行开发。数据传递的格式是xml

2.开发完成后,本地使用axis的api测试通过,可以正常返回数据。代码交给实施人员部署后,调用方反馈有问题soapenv:Server.userException,询问后得知调用方代码是用httpclient调用的,测试工具是用soapui、postman。所以怀疑是调用方式出了问题。

3.因为本人也没有试过用httpclient调用webservice接口,所以比较感兴趣,百度资料后解决了问题,现总结下:
使用的soapui版本是5.1.2,image.png
?处的内容替换为要发送的数据即可,但是要注意当发送的内容是xml格式(含有<或>)时,需要使用<![CDATA[数据]]>,将数据包起来。使用soapui也可以基于http去调用webservice接口,使用rest方式去new project:

![CDATA[数据]]>,将数据包起来。使用soapui也可以基于http去调用webservice接口,使用rest方式去new project:image.png
image.png
要注意的是此时要添加请求头SOAPAction,必须要有,值为空没问题。

使用postman的方式,和使用soapui基于http的方式一样。
使用httpclient通过代码调用,同样要添加请求头SOAPAction,并且要注意报文格式。

很多奇怪的问题都是报文格式导致的:
要发送的xml报文一般以<?xml version="1.0" encoding="UTF-8" ?>开头,注意<?xml前面不要有空格、换行,?>后至少要有一组,否则会报错。

<think>嗯,用户想了解如何使用SoapUI调用基于WSDL定义的Webservice接口,需要示例教程。首先,我需要回忆SoapUI的基本操作步骤。根据提供的引用内容,特别是引用[3]和引用[4],里面有提到创建新项目、导入WSDL、生成请求等步骤。 首先,用户可能需要从创建新项目开始。引用[3]里提到在soapUI左上角点击File,然后选择新建soap项目,输入项目名称和WSDL地址。这一步是关键,因为正确导入WSDL才能生成正确的请求模板。 接下来,生成请求。在SoapUI中,创建项目后,WSDL解析会生成对应的操作,用户需要展开操作并双击Request来生成请求体。这里可能需要指导用户如何找到对应的操作,比如GetWeather或类似的名称,具体取决于WSDL定义的内容。 然后,填写请求参数。根据引用[4],传参方式可能有XML或CDATA包装的XML。需要提醒用户根据接口文档调整参数,比如城市名称和授权码。例如,将<CityName>上海</CityName>这样的节点填入请求体中。 发送请求和查看响应也是重要的步骤。用户需要知道如何点击发送按钮,以及如何解读返回的SOAP响应,比如是否包含天气信息或错误信息。 此外,用户可能还需要高级配置的信息,比如设置HTTP头或处理身份验证。引用[4]提到可能需要设置Content-Type为text/xml,并在HTTP headers中添加SOAPAction,这些细节需要包含在教程中,以确保请求正确。 另外,用户可能遇到的常见问题,比如WSDL无法访问、参数格式错误或连接超时,应该给出解决方法。比如检查网络,确认WSDL地址有效,或者联系服务提供商。 最后,生成相关问题时要考虑用户可能的后续疑问,比如如何自动化测试、处理安全认证、性能测试或处理复杂XML结构。这些问题能帮助用户更深入地使用SoapUI进行接口测试。 需要确保步骤清晰,分点说明,并引用相关的资料来支持步骤的正确性。同时,注意使用中文,避免使用Markdown格式,但按照用户的要求,回答的结构要符合他们提供的系统级指令。检查是否有遗漏的步骤,比如新建项目后的等待解析时间,或者如何处理命名空间等问题。可能还需要提到保存项目或导出请求示例,方便后续使用。</think>### SoapUI调用WebService接口(WSDL)分步教程 #### 一、新建SoapUI项目 1. 打开SoapUI,点击左上角$File \rightarrow New \ SOAP \ Project$ 2. 输入项目名称(如`WeatherService`) 3. 在$Initial \ WSDL/WADL$栏填写WSDL地址(例如`http://api.example.com/weather?wsdl`) 4. 勾选$Create \ Requests$选项自动生成请求模板[^3] #### 二、生成请求报文 1. 在左侧项目树展开$WeatherServiceSoapBinding$ 2. 右键具体操作(如$GetWeather$)选择$New \ Request$ 3. 系统自动生成如下XML模板: ```xml <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <web:GetWeather xmlns:web="http://example.com/webservice"> <CityName>?</CityName> <AuthCode>?</AuthCode> </web:GetWeather> </soapenv:Body> </soapenv:Envelope> ``` #### 三、参数配置示例 根据接口文档填充参数值: ```xml <web:GetWeather> <CityName>上海</CityName> <AuthCode>ABCD-1234</AuthCode> </web:GetWeather> ``` *注意:若接口要求XML参数包装在CDATA中,需按如下格式*[^4]: ```xml <![CDATA[ <?xml version="1.0"?> <Request> <City>上海</City> </Request> ]]> ``` #### 四、发送请求 1. 点击绿色箭头发送请求 2. 查看右侧响应窗口,示例成功响应: ```xml <soap:Envelope> <soap:Body> <m:GetWeatherResponse> <Temperature>28℃</Temperature> <Humidity>65%</Humidity> </m:GetWeatherResponse> </soap:Body> </soap:Envelope> ``` #### 五、高级配置 1. HTTP头设置: - $Content-Type$: `text/xml; charset=utf-8` - $SOAPAction$: 空值或接口指定值 2. 超时设置:右键请求选择$Advanced \rightarrow Timeouts$ 3. 认证配置:WS-Security等协议在$Autentication$标签设置 §§常见问题解决§§ 1. WSDL无法解析:检查网络连通性,确认WSDL地址有效性 2. 参数格式错误:使用$XML \ Validate$工具校验报文结构 3. 返回500错误:查看原始响应中的服务端错误日志 4. 连接超时:调整$Timeout$值至3000ms以上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值