我正在使用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数组吗?
由于
答案 0 :(得分:0)
我认为这是最好的方法:
$params = array(
"guid" => "228B8C4E-D395-F87D-0000-00000013022F",
"brandName" => "",
"currencyCode" => "EUR"
);
$result = $client->call('GetBalances', $params);
您需要根据需要添加许多guid,brandName和currencyCode。
因此,您必须创建一个ComplexType,然后创建一个SOAP-Envelope来处理多个阵列。
我希望这会有所帮助。
答案 1 :(得分:0)
我自己遇到了这个...我发现将一个数组传递给一个键/值数组才能工作。
$params = array(
"customerIds" => array("guid" => array("228B8C4E-D395-F87D-0000-00000013022F")),
"brandName" => "",
"currencyCode" => "EUR"
);