2012-04-10 91 views
0

我試圖打電話用PHP SoapClient的方法從Web服務,但出現以下錯誤::「此網頁必須通過安全通道查看」

PHP Fatal error: Uncaught SoapFault exception: [HTTP] Forbidden (The page must be viewed over a secure channel (Secure Sockets Layer (SSL)). Contact the server administrator. ) 
Stack trace: 
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://www.ebri...', 'eBridge.WebServ...', 1, 0) 
#1 /var/application/test-control4-xml.php(284): SoapClient->__call('GetDocumentList', Array) 
#2 /var/application/test-control4-xml.php(284): SoapClient->GetDocumentList(Array) 
#3 {main} 

這裏是我正在使用的代碼:

$client = new SoapClient("https://www.ebridgeservices.com/ePortalService.asmx?WSDL"); 
$params= 
array('login' => $user, 
    'password' => $password, 
    'status'=>'All', 
    'docType'=>'850', 
    'fromDate'=> $from_date, 
    'toDate'=> $to_date,   
    'partner'=>'OurPartner') ;   
$results = $client->GetDocumentList($params);  
var_dump($results->GetDocumentListResponse); 

正如你可以看到我使用的是一個https地址,所以我不知道爲什麼我得到這個錯誤。難道我做錯了什麼?

+0

您需要證書....我想 – Baba 2012-04-10 18:51:05

回答

1

這個錯誤的一個常見原因是當你的PHP版本編譯沒有openssl庫。簡單地說,你的php無法通過https連接發出請求。

檢查您的phpinfo()輸出並查看您有openssl或任何類型的SSL支持。

+0

我確實已經啓用了openssl支持。 – xena 2012-04-10 20:50:59

0

將WSDL提供給http://soapclient.com/soaptest.html表明該WSDL文件中的鏈接指向其服務器上的http:// URL,而不是https://。可能想要問他們對此的支持。

+0

感謝您的鏈接,我以前沒有見過。我對這個肥皂的東西很新。我明白你的意思,現在你提到它,我可以在我的錯誤信息中看到http地址。我試過「支持」,並被告知他們不回答開發問題,所以仍然堅持現在。 – xena 2012-04-10 21:41:32