我在一台主机中遇到一个问题:我无法访问HTTP网址(例如http://foo-bar.com:9999/Path/To/My/Soap.svc?wsdl)。
从我的localhost(运行PHP 5.4)中访问此类URL工作正常。但是,从我的目标服务器(运行PHP 5.5)中获取此类URL会给我带来这个SoapFault:
解析WSDL:无法从“http://foo-bar.com:9999/Path/To/My/Soap.svc?wsdl”加载:无法加载外部实体“http://foo-bar.com:9999/Path/To/My/Soap.svc?wsdl”
(由于合同政策,我没有透露网址)
我可以检查什么? (由于url不是HTTPS,而只是HTTP,应该丢弃openssl)
代码:
new SoapClient(
'http://foo-bar.com:9999/Path/To/My/Soap.svc?wsdl',
array('uri' => 'http://foo-bar.com/wsdl/schema/')
);
答案 0 :(得分:0)
发现它:PHP版本之间的SOAP客户端没有任何问题。它们在-at至5.2和5.5之间保持兼容。所以在这里测试并不奇怪,只是简单的连接测试。
这样的问题应该使用:file_get_contents('http://foo-bar.com:9999/Path/To/My/Soap.svc?wsdl')
进行测试(现代PHP版本默认情况下fopen_wrappers处于活动状态。)
答案是什么?连接被拒绝。这就是我收到此类错误的原因。