2013-09-29 56 views
0

我正在尝试为网站设置数据请求,但是在尝试提取数据时遇到问题。肥皂请求失败。服务器或代码问题?

我使用http://www.soapclient.com/soaptest.html测试了url和凭证,它完美地工作,所以我知道服务已启动并且正在输入正确的凭证,但是,在使用下面的代码时,我得到以下错误;

Fatal error: Uncaught SoapFault exception: [Invalid Login] in...

我用来提出请求的完整代码(广义URL除外)是;

<?php 
$client2 = new SoapClient("http://www.example.com/api/soap.php?wsdl", array('trace'=> true)); 
$results2 = $client2->boxInfo(array(
            "customer" => 'XBLK', 
            "size" => "four", 
            "price" => "twenty")); 
echo "<pre>"; 
var_dump($client2-> __getLastRequestHeaders()); 
var_dump($client2-> __getLastRequest()); 
var_dump($client2-> __getLastResponseHeaders()); 
var_dump($client2-> __getLastResponse()); 
var_dump($results2); 
echo "</pre>"; 
?> 

由于我是新来的这些电话,我不知道如果我错过了与SOAP安装时,我更新了PHP的东西(我验证了它的安装并启用),或者如果我刚刚被盯着代码很长,我只是想念一些明显的东西。

回答

0

这是一个客户端问题,如果它工作在其他地方。尝试使用一个对象来保存参数而不是数组:

$params = new stdClass(); 
$params->customer = 'XBLK'; 
$params->size = 'four'; 
$params->price = 'twenty'; 
$results2 = $client2->boxInfo($params); 
+0

使用这种方法,我得到的错误“捕致命错误:类stdClass的的对象无法在转换为字符串” – user2082867

+0

什么线是上 - 调用'boxInfo()'?我有点困惑;你没有传递一个字符串,并没有得到这个错误:/ –

+0

是的,它在'$ results2 = $ client2-> boxInfo($ params);'只有$ client2 = new SoapClient的行。 .'打电话和php在它上面打开。 – user2082867