PHP SoapClient无法使用https WS
我在使用包含https的WS(WSDL)的PHP SoapClient时遇到问题。 我的PHP版本是5.2.5。 在您提问之前,是的,我正在使用PHP的Soap和openSSL扩展 我正在尝试访问的URL是: 我正在使用的代码:PHP SoapClient无法使用https WS,php,wsdl,soap-client,Php,Wsdl,Soap Client,我在使用包含https的WS(WSDL)的PHP SoapClient时遇到问题。 我的PHP版本是5.2.5。 在您提问之前,是的,我正在使用PHP的Soap和openSSL扩展 我正在尝试访问的URL是: 我正在使用的代码: $url = "https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL"; $options["connection_timeout"] = 25; $options["
$url = "https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL";
$options["connection_timeout"] = 25;
$options["location"] = $url;
$client = new SoapClient($url,$options);
它在构造SoapClient时失败,我得到以下错误:
警告:SoapClient::SoapClient():未能打开流:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。在第42行的C:\MY-DEV-FOLDER\index.php中警告:SoapClient::SoapClient():I/O警告:未能加载外部实体“”,在第42行的C:\MY-DEV-FOLDER\index.php中引发异常-SOAP-ERROR:解析WSDL:无法从“”加载
谁能告诉我出了什么问题
谢谢
Erez我刚刚运行了您提供的代码,它运行得非常好:
<?php
$url = "https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL";
$options["connection_timeout"] = 25;
$options["location"] = $url;
$options['trace'] = 1;
$client = new SoapClient($url,$options);
print_r($client->__getFunctions());
因此,也许您应该检查是否存在任何网络问题:是否有防火墙阻止服务器进程内的通信?(我假设它是IIS?)您可能还想检查
安全模式设置,尽管我怀疑这是问题所在。您需要在PHP中启用OpenSSL才能通过https检索内容
在php.ini中取消对此行的注释
extension=php_openssl.dll
在phpinfo()中查找openssl
部分:
extension=php_openssl.dll
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 0.9.8k 25 Mar 2009
OpenSSL Header Version => OpenSSL 0.9.8k 25 Mar 2009