【问题标题】:php "All authentication must be done over SSL" using SOAPphp“所有身份验证必须通过 SSL 完成”使用 SOAP
【发布时间】:2012-03-14 18:17:59
【问题描述】:

我正在使用 PHP 与 SOAP Web 服务通信,但遇到了问题。

// 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 中创建了非常简单的程序,创建了一个服务引用来生成代理类,它工作正常。

为了使方法调用使用 SSL,我在 PHP 中缺少什么?

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

【问题讨论】:

    标签: php web-services soap ssl


    【解决方案1】:

    如果 WSDL 中的服务 URL 是 HTTP URL,那么即使 WSDL 是通过 HTTPS 下载的,请求也可能是通过 HTTP 发出的。

    【讨论】:

    • 我认为元素 operation LogOnWithPassword 指向的是 http URL http://tempuri.org/IAuth/LogOnWithPassword 而不是 https
    • 好点。按照这种思路,我查看了服务soap:address 位置,它有http,这是不对的。当我下载 WSDL,将其更改为 https,引用它时,它现在似乎可以工作了。感谢您指出正确的方向。 .Net 工作,因为它在服务参考中有 https。
    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2015-07-25
    相关资源
    最近更新 更多