php soap client __getLastRequest总是一样的

时间:2013-11-14 13:41:03

标签: php soap soap-client

<?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());

无论我将$ opt更改为传递给soap函数的值,使用__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。但它告诉我,参数是错误的。我无法调试,因为__getLastRequest内部没有任何参数。

1 个答案:

答案 0 :(得分:0)

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

这有效。

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

表示有一个名为in0的参数。

并且不应该传递数组。