[英]SoapClient “Could not connect to host” exception with one WSDL API
在移至新的OVH VPS计算机之后,我与API的WSDL连接出现问题,因此这可能是某种奇怪的错误配置。
我与SoapClient一起使用的其他WSDL工作正常,没有问题。 我可以在该地址上使用file_get_contents
,但是当我尝试使用该API中的过程时,使用SoapClient
会给出异常“无法连接到主机”。
有任何想法吗? 我尝试了一些带有SSL选项的stream_context
。 最有趣的是,其他OVH VPS正常工作。
系统是Debian 8,板载PHP 5.6.19。
WSDL的地址在这里: https ://api-test.paczkawruchu.pl/WebServicePwR/WebServicePwRTest.asmx?WSDL
在与WSDL提供者协商之后,并检查了双方的日志,我们找到了anwser。 看起来PHP 5.6有一些问题,您必须将参数更改为SOAP 1.2。 这终于解决了问题。 在这里的第一个评论中可以找到解决方案: SOAP PHP错误解析WSDL:无法加载外部实体?
// options for ssl in php 5.6.5
$opts = array(
'ssl' => array('ciphers'=>'RC4-SHA', 'verify_peer'=>false, 'verify_peer_name'=>false)
);
// SOAP 1.2 client
$params = array ('encoding' => 'UTF-8', 'verifypeer' => false, 'verifyhost' => false, 'soap_version' => SOAP_1_2, 'trace' => 1, 'exceptions' => 1, "connection_timeout" => 180, 'stream_context' => stream_context_create($opts) );
$oSoapClient = new SoapClient ( $url . "?WSDL", $params );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.