php 调用https双认证的webservice,如何做?

clipboard.png
报: SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://xxxxx.1.wsdl' : failed to load external entity "https://xxxxx.1.wsdl"
有人写过类似的吗。对方是https双认证协议,如何使用soapClient调用对方的wsdl

阅读 3.3k
2 个回答

你先在浏览器访问下wsdl文件 看看能不能请求通,如果能的话,检查下你的服务器有没有安装openssl,如果有安装的话 你设置下参数绕过ssl检查,看看能不能通,如果不能的话 应该是你的pem有问题了

绕过ssl检查
libxml_disable_entity_loader(false);
$opts = array(
    'ssl'   => array(
            'verify_peer'          => false
        ),
    'https' => array(
            'curl_verify_ssl_peer'  => false,
            'curl_verify_ssl_host'  => false
     )
);
$streamContext = stream_context_create($opts);
$client = new SoapClient("https://xxx.wsdl",
  array(
      'stream_context'    => $streamContext
  ));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题