Home  >  Article  >  Backend Development  >  怎么解决PHP SOAP-ERROR问题

怎么解决PHP SOAP-ERROR问题

PHPz
PHPzOriginal
2016-06-06 20:22:013379browse

解决PHP SOAP-ERROR问题的方法:首先通过“openssl_get_cert_locations”获取默认证书路径;然后下载证书;最后保存到目录即可解决PHP SOAP-ERROR问题。

怎么解决PHP SOAP-ERROR问题

怎么解决PHP SOAP-ERROR问题?

解决 PHP SOAP-ERROR: Parsing WSDL: Couldn't load from 问题

PHP Fatal error:  Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://xxxx.com'.

这个错误是我从PHP5.6升级到php7.2的时候遇到的问题,从google搜索后发现很多人出现这个问题,一直没有找到好的结果,知道一个文章里面找到下面的代码

$opts = array(
            'http' => array(
                'user_agent' => 'PHPSoapClient'
            ),
            'ssl'   => array(
               'verify_peer'          => false
            ),
        );
        $context = stream_context_create($opts);
$requestUrl = 'https://labelserver.endicia.com/LabelService/EwsLabelService.asmx?wsdl';
        $client = new SoapClient($requestUrl, array("trace" => 1, "cache_wsdl" => WSDL_CACHE_NONE, "exception" => 1, 'stream_context' => $context));

问题的主要是 SSL认证失败

通过openssl_get_cert_locations 获取默认证书路径。

openssl_get_cert_locations()
rray(8) {
  ["default_cert_file"]=>
  string(21) "/usr/lib/ssl/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/usr/lib/ssl/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/usr/lib/ssl/private"
  ["default_default_cert_area"]=>
  string(12) "/usr/lib/ssl"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""

下载证书,并保存到目录,后问题得到解决

 更多相关知识,请访问PHP中文网

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn