我有一个PHP文件,它发送SOAP请求
$client = new SoapClient('http://xyz');
$client->call('example', array('param1'=>'value2')
我想使用SoapUI执行相同的请求:
<soapenv:Envelope [..]>
<soapenv:Header/>
<soapenv:Body>
<urn:call soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<param1 xsi:type="xsd:string">example</param1>
<param2 xsi:type="xsd:anyType">
??
</param2>
</urn:call>
</soapenv:Body>
</soapenv:Envelope>
如何在XML中编码上述示例?
答案 0 :(得分:1)
应该是这样的:
<soapenv:Envelope [..]>
<soapenv:Header/>
<soapenv:Body>
<urn:call soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<param1 xsi:type="xsd:string">example</param1>
<param2 xsi:type="xsd:anyType">
<param1 xsi:type="xsd:string">value2</param1>
</param2>
</urn:call>
</soapenv:Body>
</soapenv:Envelope>
答案 1 :(得分:0)
使用json_encode()
然后将数组作为字符串表示形式发送。
答案 2 :(得分:0)
在这种情况下,有一个很好的PHP SOAP客户端函数:$client->__getLastRequest()
它表明,请求是这样构建的:
<param2 xsi:type="ns2:Map">
<item xsi:type="ns2:Map">
<key xsi:type="xsd:string">param1</key>
<value xsi:type="xsd:string">param2</value>
</item>
</param2>