这个问题已经困扰我几个小时了。我可以在浏览器中使用curl很好地访问wsdl,但是在使用以下代码时,PHP SoapClient会返回一个错误:
$ps_client = new SoapClient("https://ppds.hitpromo.net/productData");下面是它返回的错误:
Fatal error: Uncaught SoapFault exception:
[WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://ppds.hitpromo.net/productData' :
failed to load external entity "https://ppds.hitpromo.net/productData"我尝试了各种解决方案,包括在调用构造函数时设置各种选项,但似乎都不起作用。
发布于 2020-08-09 05:52:35
这最终不是真正的修复,它的发生是因为在php中没有启用SSL。我在php.ini中注释掉了这一行,修复了这个问题:
extension=openssl在我的例子中,我可以使用http uri构造SoapClient,但是它在调用函数时抛出了一个错误,因为SSL没有启用。
以前的回答是:证明这是一个非常简单的修复方法。我不知道为什么,但是把它从https改成http就解决了所有问题:
$ps_client = new SoapClient("http://ppds.hitpromo.net/productData");这真是一个令人沮丧的问题,因为我在java上使用过同样的WSDL,在使用ksoap时没有遇到过这个问题。我想把它贴出来,因为我相信总有一天会有人遇到同样的问题。
发布于 2020-12-11 05:54:44
发生此错误是因为您的站点位于其防火墙阻止交换的主机上。联系您的主机公司,将交换站点的IP添加到防火墙白名单中。您无需删除ssl或代码即可忽略它。
https://stackoverflow.com/questions/63320545
复制相似问题