我尝试向名为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>
我应该如何在函数调用中包含参数?
答案 0 :(得分:0)
问题解决了。我学到的是XML输出依赖于WSDL,在我的例子中,它希望我将params放在一个带有“Params”键的数组中。但是,通过WSDL查看XML返回,我发现没有这样的信息,而是看起来应该使用关键的“参数”。我不确定,但服务可能有问题。