我正在尝试使用 SoapUI 进行 Web 服务的自动化测试。当我将请求表单发送到应该自动化测试的服务器时,我总是得到以下响应:
---------------- Request ---------------------------
Request Headers: Authorization : Basic
Host : domino.auto-partner.net
Content-Length : 1286
SOAPAction : "RETURNRESPONSE"
Accept-Encoding : gzip,deflate
User-Agent : Apache-HttpClient/4.1.1 (java 1.5)
Connection : Keep-Alive
Content-Type : text/xml;charset=UTF-8
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:DefaultNamespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<urn:RETURNRESPONSE soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<XDBREPID>C125724100348230</XDBREPID>
<XDOCID>23EECD26930551E0C125759B004A802C</XDOCID>
<XCHGID>CRQ000000012811</XCHGID>
</urn:RETURNRESPONSE>
</soapenv:Body>
</soapenv:Envelope>
---------------- Response --------------------------
Response Headers: Date : Wed, 17 Jul 2013 10:44:39 GMT
#status# : HTTP/1.1 200 OK
Content-Length : 453
Keep-Alive : timeout=5, max=100
Connection : Keep-Alive
Content-Type : text/xml; charset=utf-8
Server : Lotus-Domino
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:MustUnderstand</faultcode>
<faultstring>Did not understand "MustUnderstand" header(s):</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
在我的客户端上运行相同的请求会导致成功响应:
---------------- Request ---------------------------
POST https://domino.auto-partner.net/int/db/pub/webservi.nsf/ITSMSchnittstelle?OpenWebService HTTP/1.1
Connection: close
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "RETURNRESPONSE"
Authorization: Basic
User-Agent: Jakarta Commons-HttpClient/3.1
Host: domino.auto-partner.net
Content-Length: 621
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:DefaultNamespace">
<soapenv:Header/>
<soapenv:Body>
<urn:RETURNRESPONSE soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<XDBREPID xsi:type="xsd:string">C125724100348230</XDBREPID>
<XDOCID xsi:type="xsd:string">9AAF42C6539D4775C1257AB8004D1E7C</XDOCID>
<XCHGID xsi:type="xsd:string">CRQ000000012555</XCHGID>
</urn:RETURNRESPONSE>
</soapenv:Body>
</soapenv:Envelope>
---------------- Response --------------------------
HTTP/1.1 200 OK
Date: Thu, 18 Jul 2013 06:47:11 GMT
Server: Lotus-Domino
Content-Type: text/xml; charset=utf-8
Content-Length: 558
Connection: close
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Body>
<ns1:RETURNRESPONSEResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DefaultNamespace"><RETURNRESPONSEReturn xsi:type="xsd:string">Success</RETURNRESPONSEReturn></ns1:RETURNRESPONSEResponse>
</soapenv:Body>
</soapenv:Envelope>
我尝试了不同的 WS-A 和 WS-RM 设置,但没有一个能解决问题。
如何定义不必理解响应?难道这个设置不在 SoapUI 中而是在 User-Agent 中?