YII2 使用curl请求,返回false

一. 起因:

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

二. 分析历程:

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

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

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

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

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验证: 

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//原生

$curl->setOption(CURLOPT_SSL_VERIFYPEER=>0);//YII2

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

解决办法,设置header

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

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

posted @   土豆柿子  阅读(1129)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示