2013-09-29 57 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