错误 PHP 7.0 和 SSL TLS 1.0
Error PHP 7.0 and SSL TLS 1.0
我在使用 SoapClient 和 PHP 7.0 解析 wsdl 时遇到问题。
我收到此错误:
SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://ws.ocasa.com/testecommerce/service.asmx?wsdl' : failed to load external entity "https://ws.ocasa.com/testecommerce/service.asmx?wsdl"
如果你把这个 URL 放在浏览器中,你可以看到 SOAP,在 SoapUI 中它也可以正常工作。
我正在使用 laravel 5.4,我的代码是:
$client = new \SoapClient('https://ws.ocasa.com/testecommerce/service.asmx?wsdl',
['soap_version'=>SOAP_1_2]);
我注意到该网站使用 SSL TLS 1.0。如果我将 PHP 更改为 5.6,它可以完美运行,但是对于 PHP 7.0,它不起作用。
如果我更改为其他 WSDL:
https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL
一切正常。
谢谢
您可以选择忽略错误证书:
$endpoint = new SOAPClient($url,
array(
'soap_version'=>SOAP_1_2,
'stream_context' => stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
)
)
)
);
如果您无法访问 soap 服务器来更正证书,或者无法让您的服务器接受证书,这将是一个解决方案。
这应该是最后一个解决方案,因为您确实忽略了所有警告,出了点问题
我在使用 SoapClient 和 PHP 7.0 解析 wsdl 时遇到问题。
我收到此错误:
SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://ws.ocasa.com/testecommerce/service.asmx?wsdl' : failed to load external entity "https://ws.ocasa.com/testecommerce/service.asmx?wsdl"
如果你把这个 URL 放在浏览器中,你可以看到 SOAP,在 SoapUI 中它也可以正常工作。
我正在使用 laravel 5.4,我的代码是:
$client = new \SoapClient('https://ws.ocasa.com/testecommerce/service.asmx?wsdl',
['soap_version'=>SOAP_1_2]);
我注意到该网站使用 SSL TLS 1.0。如果我将 PHP 更改为 5.6,它可以完美运行,但是对于 PHP 7.0,它不起作用。
如果我更改为其他 WSDL:
https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL
一切正常。
谢谢
您可以选择忽略错误证书:
$endpoint = new SOAPClient($url,
array(
'soap_version'=>SOAP_1_2,
'stream_context' => stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
)
)
)
);
如果您无法访问 soap 服务器来更正证书,或者无法让您的服务器接受证书,这将是一个解决方案。
这应该是最后一个解决方案,因为您确实忽略了所有警告,出了点问题