【发布时间】:2012-05-23 15:47:11
【问题描述】:
我尝试向名为 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>
我应该如何在函数调用中包含参数?
【问题讨论】:
-
试试这个
$result = $client->__soapCall('GetPeriodicValues', $params);。甚至这个$result = $client->GetPeriodicValues('myname', 'myaddress')也可以工作。 -
您的两个建议都会生成
<ns1:RequestOf_GetPeriodicValuesParameters/><param1>myaddress</param1>。不幸的是,这不是我需要的。我需要标签的名称是 name 和 address 并且它们也应该在标签<ns1:RequestOf_GetPeriodicValuesParameters>内,而不是在它之后。有谁知道我的期望是错误的,还是 SoapClient 中有错误?
标签: php xml soap-client