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 地址,所以我不确定为什么会收到此错误。难道我做错了什么?

4

2 回答 2

1

此错误的常见原因是您的 php 版本在没有 openssl 库的情况下编译。简而言之,您的 php 无法通过 https 连接发出请求。

检查你的 phpinfo() 输出,看看你有没有 openssl 或任何类型的 SSL 支持。

于 2012-04-10T18:56:16.267 回答
0

将该 WSDL 提供给http://soapclient.com/soaptest.html表明该 WSDL 文件中的链接指向其服务器上的 http:// URL,而不是 https:// 。可能想问问他们对此的支持。

于 2012-04-10T19:05:18.270 回答