1

我已经在 OS X Mavericks 上安装了 AMPPS,当我尝试使用SoapClient该类在 PHP 中通过 HTTPS 访问 WSDL 时出现以下错误。

SOAP 错误:解析 WSDL:无法从“ https://www.some-domain.com/Webservice.asmx?WSDL ”加载:无法加载外部实体“ https://www.some-domain.com/安全/api/Webservice.asmx?WSDL "

OpenSSL、SOAP 和 cURL 在我运行时启用phpinfo()。我可以使用file_get_contents(). 没有防火墙阻止连接。同一网络上的其他计算机可以正常连接。下面是我的代码。它适用于生产服务器以及我使用过的其他几台计算机。

$this->wsdlUrl = 'https://www.some-domain.com/Webservice.asmx?WSDL';
$this->client = new SoapClient($this->wsdlUrl);
$this->client->Connect(array(
    /* Login credentials */
));

我也尝试使用verify_peer设置为的流上下文false,但结果相同。正如某些人所建议的那样,增加default_socket_timeout选项也不起作用。

我知道还有其他几个关于此错误的问题,但我找不到适合我的建议解决方案。

有任何想法吗?提前致谢!

4

1 回答 1

0

我相信这将为您指明正确的方向:

try {
    $sc= new SoapClient('https://www.some-domain.com/Webservice.asmx?WSDL');
    $sc->Connect(/* Login credentials */);
} catch (SoapFault $fault) {
    print_r($fault->faultstring);
}
于 2013-11-07T14:40:41.443 回答