2

我有一个 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 中对上述示例进行编码?

4

3 回答 3

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>
于 2012-08-07T17:17:39.950 回答
0

使用json_encode()然后将数组作为字符串表示形式发送。

于 2012-08-07T17:15:31.627 回答
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>
于 2012-08-07T19:05:22.223 回答