我正在使用NuSoap库来调用WCF Web服务。
在调用具有类型化数组作为其中一个参数的特定Web方法时,我陷入困境。
通过SOAP UI调用Web方法时。我有这样的东西(它的工作原理)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<soapenv:Header/>
<soapenv:Body>
<tem:GetBalances>
<tem:customerIds>
<arr:guid>228B8C4E-D395-F87D-0000-00000013022F</arr:guid>
</tem:customerIds>
<tem:brandName></tem:brandName>
<tem:currencyCode>EUR</tem:currencyCode>
</tem:GetBalances>
</soapenv:Body>
</soapenv:Envelope>
我试图使用NUSoap这样调用同样的请求:
$params = array("customerIds" =>
array(
"guid" => '228B8C4E-D395-F87D-0000-00000013022F'
),
"brandName" => "",
"currencyCode" => "EUR"
);
$result = $client->call('GetBalances', $params);
但不幸的是,我没有得到任何结果。
知道如何构造params数组吗?
谢谢
我认为这是最好的方法:
$params = array(
"guid" => "228B8C4E-D395-F87D-0000-00000013022F",
"brandName" => "",
"currencyCode" => "EUR"
);
$result = $client->call('GetBalances', $params);
您需要添加如此多的guid,brandName和currencyCode。
因此,您必须创建一个ComplexType,然后创建一个SOAP-Envelope来处理多个数组。
我希望这有帮助。
刚碰到这个...我发现将一个数组传递给一个键/值数组来工作。
$params = array(
"customerIds" => array("guid" => array("228B8C4E-D395-F87D-0000-00000013022F")),
"brandName" => "",
"currencyCode" => "EUR"
);