0

我正在使用 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>

我试图像这样调用这个相同的请求 ussign NUSoap:

$params = array("customerIds" =>
            array(
                "guid" => '228B8C4E-D395-F87D-0000-00000013022F'
            ),
            "brandName" => "",
            "currencyCode" => "EUR"
        );

$result = $client->call('GetBalances', $params);

但不幸的是,我没有得到任何结果。

知道应该如何构造 params 数组吗?

谢谢

4

2 回答 2

0

我认为这是最好的方法:

$params = array(
             "guid" => "228B8C4E-D395-F87D-0000-00000013022F",
             "brandName" => "",
             "currencyCode" => "EUR"
);

$result = $client->call('GetBalances', $params);

您需要根据需要添加如此多的 guid、brandName 和 currencyCode。

因此,您必须创建一个 ComplexType,然后创建一个 SOAP-Envelope 来处理多数组。

我希望这有帮助。

于 2012-05-15T14:07:11.400 回答
0

我自己也遇到了这个......我发现将一个数组传递给一个键/值数组来工作。

$params = array(
    "customerIds" => array("guid" => array("228B8C4E-D395-F87D-0000-00000013022F")),
    "brandName" => "",
    "currencyCode" => "EUR"
);
于 2014-04-17T17:23:54.467 回答