Web服务-PHP:通过SSL与SoapClient连接

时间:2018-06-27 15:11:38

标签: php web-services ssl soap wsdl

我正在尝试连接到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地址。

请赞成这个问题,以便我得到帮助。

0 个答案:

没有答案