在SOAP客户端上传递SOAP函数内的对象

时间:2012-12-31 05:40:03

标签: php web-services soap nusoap soap-client

我需要从PHP平台调用soap WSDL。 SOAP请求由SOAP body函数内的SOAP对象组成。

示例工作SOAP请求如下,

<SOAP-ENV:Envelope 
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ser:f1>
<a1>
<number xsi:type="xsd:string">720</number>
<newStatus xsi:type="xsd:string">2</newStatus>
</a1>
</ser:f1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

f1是一个SOAP函数,它是a1中的另一个参数。

我需要从phpsoapclient或NuSOAP调用它。

我的以下示例代码(NUSOAP)无效,

require_once "lib/nusoap.php";
$client = new nusoap_client("https://xxxx?wsdl");
$client->soap_defencoding = 'UTF-8';

$result = $client->call("f1", array("number" => "720","newStatus" => "2"),'','');

如果有人可以,请提供php或NuSOAP的SOAPCLIENT代码。

1 个答案:

答案 0 :(得分:0)

试试这个:

$client = new nusoap_client($url, true);

希望这有帮助:)