2012-03-14 75 views
0

我正在使用PHP与SOAP webservice进行通信,我遇到了麻烦。php“所有验证都必须通过SSL完成”,使用SOAP

// Create SOAP client object 
$objClient = new SoapClient("https://panopto_host/Panopto/PublicAPI/4.0/Auth.svc?wsdl", array('trace' => true)); 

// These parameters satisfy this specific remote call. 
$loginParams = array('userKey' => 'cmjw', 'password' => 'bleh'); 

$objLogin = $objClient->LogOnWithPassword($loginParams); 

我得到的错误是“所有认证必须通过SSL完成”。我不知道这是一个服务器应用程序错误消息还是一个标准的SOAP错误,但奇怪的是我在.Net中创建了非常简单的程序,创建了一个服务引用来生成代理类,并且它工作正常。

我缺少什么PHP使方法调用使用SSL?

感谢您的任何建议。 科里。

回答

0

如果WSDL中的服务URL是http URL,那么即使通过https下载WSDL,该请求也可能通过http进行。你能分享WSDL内容吗?

+0

https://dlri.hosted.panopto.com/Panopto/PublicAPI/4.0/Auth.svc?wsdl [link](https://dlri.hosted.panopto.com/Panopto/PublicAPI/4.0/Auth。 svc?wsdl) – cardinalPilot 2012-03-14 18:26:03

+0

我认为'操作''LogOnWithPassword'元素指向http URL'http:// tempuri.org/IAuth/LogOnWithPassword'而不是https – 2012-03-14 18:29:22

+1

好点。遵循这一思路,我查看了服务soap:地址位置,它有http,这是不对的。当我下载WSDL时,将其更改为https,引用它,它现在似乎工作。感谢您的正确方向。 .Net工作,因为它在服务参考中有https。 – cardinalPilot 2012-03-14 18:38:12