我正在尝试使用来自Web服务的php SOAPclient调用方法但是出现以下错误:
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 :(得分:1)
此错误的常见原因是您的php版本在没有openssl库的情况下编译。简单地说你的php无法通过https连接发出请求。
检查你的phpinfo()输出,看看你有openssl或任何类型的SSL支持。
答案 1 :(得分:0)
将WSDL提供给http://soapclient.com/soaptest.html表明该WSDL文件中的链接指向其服务器上的http:// URL,而不是https://。可能想问他们对此的支持。