欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

soap调用无返回值值

程序员文章站 2024-04-05 17:13:06
...
我使用$result = $this->CLIENT->GetOrders(new SoapVar($XMLSearch,XSD_ANYXML));调用soap的GetOrders函数,无返回值,但是我使用$this->CLIENT->__getLastRequest();可以得到我想要的结果的xml格式。

1.我new了一个soapclient,
$this->CLIENT = new SoapClient('http://services.carsolize.com/BookingServices/OrdersService.svc?wsdl',
array(
/*"SoapAction" => "urn:IOrdersService/GetOrders",*/
'exceptions' => true,
"trace" => 1,
)
);
2.发送请求:
try{
$XMLSearch = '

'.CARSOLIZE_PASSWORD.''.CARSOLIZE_USERNAME.'
'.$this->INPUT_VALIDATION['VALID']['date_from'].'T00:00:000'.$this->INPUT_VALIDATION['VALID']['date_to'].'T00:00:00

';
$result = $this->CLIENT->GetOrders(
new SoapVar($XMLSearch,XSD_ANYXML)
);
var_dump($this->CLIENT->__getFunctions());
echo $this->CLIENT->__getLastResponse());
var_dump($this->CLIENT->__getTypes());

echo $result ;
}catch(Exception $e){
echo $e->getMessage();
}
3.$result是空的,什么也没打印出来,也没有报错,但是$this->CLIENT->__getLastResponse()有值
我不知道问题出在什么地方,为什么getlastresponse又值而getorder没有值呢


回复讨论(解决方案)

缺少用户名和口令,无法进行测试

缺少用户名和口令,无法进行测试


用户名和密码是公司的,你想怎么测试,我可以把返回值贴出来,谢谢

你不是说 无返回值 吗?
既然能 可以把返回值贴出来
那还问什么?

1.__getlastresponse的返回值:
true1467API Dev\APi LiveAPI Dev\APi Live14672013-04-08T06:44:07.46Hotelbeds live2013-03-21T14:32:11.8236565SGD2063.866581HotelsCX13Hotelbeds28433336SGD327.06202.54000000000002EUR2013-05-09T00:00:002013-05-16T00:00:00SGD2063.861278.08EUR2013-05-15T00:00:002013-05-17T00:00:00SGD2063.861278.08EUR2013-05-18T00:00:00No show2013-05-18T00:00:002013-05-25T00:00:00633 Toyo, Kotoku, Tokyo, 1350016 Japan TokyoJP81-3-568357754032332East 21 +81 3 5683 56834135001626081AvailableRoom only ROStandard26081UserMr.TestAdult26083UserMrs.DummyAdultROOM ONLYDOUBLE SEMIDOUBLEDOUBLE SEMIDOUBLEDoubleAvailableRoom only ROStandard26082StigSirTheAdultROOM ONLYSINGLE STANDARDSINGLE STANDARDSingle1467API Dev\APi LiveAPI Dev\APi Live14672013-04-08T06:43:40.637GTA live b2b2013-03-28T09:35:56.3076990SGD3027006HotelsCX12GTAIiVpcP5twk+dJP+ts3G+aQ==993592SGD151151SGD2013-06-02T00:00:002013-06-07T00:00:00cancellationSGD302302SGD2013-06-08T00:00:00No show2013-06-08T00:00:002013-06-10T00:00:00730 Yellowst Rd, Cody, 824141123, Wy, Us CODY YELLOWSTONE NATIONAL PARK AREAUS1-307-52762144088151Super 8 Cody 1-307-5276214227793AvailableRoom only ROStandard27793roseteMrvincentAdult27794condeMrjrAdultRoom onlyStandard Queen Non SmokingStandard Queen Non SmokingQueen
2.getorder无返回值
3.__getFunctions的返回值:
array(4) {
[0]=>
string(38) "UNKNOWN GetOrders(UNKNOWN $parameters)"
[1]=>
string(41) "UNKNOWN GetFinReport(UNKNOWN $parameters)"
[2]=>
string(38) "UNKNOWN GetOrders(UNKNOWN $parameters)"
[3]=>
string(41) "UNKNOWN GetFinReport(UNKNOWN $parameters)"
}
4.__getlastrequest的返回值:

********2013-01-12T00:00:0002013-05-12T00:00:00

你不是说 无返回值 吗?
既然能 可以把返回值贴出来
那还问什么?


我用soapui测试,可以正常返回。难道soapui的返回值是通过soapclient的__getLastResponse返回的而不是通过getorders返回的

不经测试,我如何知道你写的是否正确?

不经测试,我如何知道你写的是否正确?


谢谢你,我好像知道问题了,我测试了一下,他们每个函数有两套,有一套有问题,没有返回值

我以为找到问题了,结果没找到问题,是有两个server,但是https://rd00155d3a2faa/BookingServices/OrdersService.svc所有的request都是没有响应的,不只是getOrder没有响应。

这个问题目前解决了吗?我也遇到了这样的问题