0
<?php
$opt = array(
    'currentPage' => '1',
    'pageSize' => '10',
    'productType' => 'TICKET'
);
$url = 'http://x.x.x.x/clutter/services/distributionService?wsdl';
$client = new SoapClient($url, array("trace" => 1));
$result = $client->productInfoList(array('parameters' => $opt));
var_dump($client->__getFunctions());
var_dump($client->__getLastRequest());
var_dump($client->__getLastResponse());

soap 関数に渡す値である $opt を変更しても、常に __getLastRequest を使用して戻ります。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://service.distribution.xxxx.com"><SOAP-ENV:Body><ns1:productInfoList><ns1:in0 xsi:nil="true"/></ns1:productInfoList></SOAP-ENV:Body></SOAP-ENV:Envelope>

変わることはありません。
そして、石鹸の結果が正しく得られません。
リクエストでパラメーターが渡されないように見えます。なぜ?

応答は SOAP XML です。しかし、paramsが間違っていると教えてくれます。__getLastRequest の内部にパラメーターがないため、デバッグできません。

4

1 に答える 1

0
$result = $client->productInfoList(array('in0' => $str));

これは機能します。

<ns1:in0 xsi:nil="true"/>

in0 という名前のパラメーターが 1 つあることを意味します。

配列を渡すべきではありません。

于 2013-11-14T16:32:19.610 に答える