YII2 使用curl请求,返回false

一. 原由:

今天用yii框架,请求java接口,始终返回false.php

二. 分析历程:

使用curl_error()方法打印出Peer’s Certificate issuer is not recognized。java

翻译出来的意思是ssl证书未认证经过,证书问题?不细揪,经过结果判断,就是证书的问题。json

不过毕竟是第三方的接口,要解决须要联系运维,查看证书,还要从新设置证书路径,很麻烦,很差处理。app

附上要设置的(未验证),供参考框架

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl,CURLOPT_CAINFO,dirname(__FILE__).'/cacert.pem');

三. 解决办法

关掉curl对于证书的验证。不过curl类的封装是统一的,为了避免影响其余的代码。运维

php curl关掉ssl验证: yii

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//原生 $curl->setOption(CURLOPT_SSL_VERIFYPEER=>0);//YII2

在此过程当中还遇到了,对方接口不识别返回的json数据curl

解决办法,设置header测试

$curl->setHeaders(['Content-Type' => 'application/json']);

结果,再次测试,接口通了。url

相关文章
相关标签/搜索