0

我尝试向名为 GetPeriodicValues 的 .NET WSDL 函数发出请求。该函数需要一些参数,问题是 SoapClient 创建了不正确的 XML。

这个 PHP 代码...

$client = new SoapClient(self::URL , array('trace' => 1,  'encoding' => 'UTF-8', 'soap_version' => SOAP_1_1));
$params = array('name' => 'myname', 'address' => 'myaddress');
$result = $client->__soapCall('GetPeriodicValues', array('parameters' => $params), array());

...生成以下请求-XML(我已经排除了一些不相关的内容):

<SOAP-ENV:Body>
   <ns1:RequestOf_GetPeriodicValuesParameters/>
</SOAP-ENV:Body>

但我希望它能够创造这个

<SOAP-ENV:Body>
   <ns1:RequestOf_GetPeriodicValuesParameters>
      <ns1:name>myname</ns1:name>
      <ns1:address>myaddress</ns1:address>
   </ns1:RequestOf_GetPeriodicValuesParameters>
</SOAP-ENV:Body>

我应该如何在函数调用中包含参数?

4

1 回答 1

0

问题解决了。我学到的是 XML 输出依赖于 WSDL,在我的情况下,它希望我将参数放在一个带有键“Params”的数组中。但是,查看 WSDL 返回的 XML,我发现没有这样的信息,而是看起来应该使用关键的“参数”。我不确定,但也许服务有问题。

于 2012-05-24T07:38:21.733 回答