PHP SoapClient无法正确包含XML中的函数参数

时间:2012-05-23 15:47:12

标签: php xml soap-client

我尝试向名为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>

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

1 个答案:

答案 0 :(得分:0)

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