0

NuSoap ライブラリを使用して WCF Web サービスを呼び出しています。

パラメータの 1 つとして型指定された配列を持つ特定の 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 配列をどのように構成する必要があるか考えていますか?

ありがとう

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 に答える