我正在尝试连接到Web服务以从https://buscoach.etswebservice.be:12443/TransmissionService.svc?wsdl中读取PHP中的数据。我遇到的错误是当前错误:
致命错误:未捕获的SoapFault异常:[WSDL] SOAP错误:解析WSDL:无法从'https://buscoach.etswebservice.be:12443/TransmissionService.svc?wsdl'加载:无法在/ data / sites中加载外部实体“ https://buscoach.etswebservice.be:12443/TransmissionService.svc?wsdl” /web/hostingbvbabe/www/demo2/test.php:22堆栈跟踪:#0 /data/sites/web/hostingbvbabe/www/demo2/test.php(22):SoapClient-> SoapClient('https://buscoac ...',数组)#1 {main}在第22行的/data/sites/web/hostingbvbabe/www/demo2/test.php中抛出
我当前拥有的PHP代码是:
$wsdlUrl = "https://buscoach.etswebservice.be:12443/TransmissionService.svc?wsdl";
$context = stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)));
$params = array(
'trace' => 1,
'exceptions' => true,
'cache_wsdl' => WSDL_CACHE_NONE,
'stream_context' => $context
);
$client = new SoapClient($wsdlUrl, $params);
我已经尝试了很多,但无法正常工作,我想它必须与Soap版本和SSL证书有关,我尝试了以下操作,但没有一个起作用:
SOAP PHP fault parsing WSDL: failed to load external entity?
https://community.extremenetworks.com/extreme/topics/howto-connect-webservices-via-soap-php5-6-x
...基本上,当我搜索错误时,Google中的所有其他链接...
我正在使用以下phpinfo()在Linux Web服务器(无SSL)上工作: https://ufile.io/wfztz(是HTML文件,太长了,无法显示在帖子中)
我具有OpenSSL和allow_url_fopen,已启用Soap Client 我正在使用的服务器具有以下子文件夹:http:// ....... .be / demo2 /,这有问题吗?
我还用SoapUI中的凭据(用户名和密码)测试了wsdl函数GetTitles,并且在那里工作。
也许有人可以向我解释要求是什么,以及如何找到它们?我几天来一直在尝试不同的方法,将不胜感激!
编辑:问题是PHP无法连接到主机。这篇文章指出了2种可能的解决方案(https://blog.jachim.be/2010/11/soap-error-parsing-wsdl/),但我不知道如何实现它们:
•在服务器的主机文件中添加主机名(127.0.0.1主机名)。
•在正确的VirtualHost(ServerAlias主机名)中添加主机名或IP地址。
请赞成这个问题,以便我得到帮助。