zoukankan      html  css  js  c++  java
  • 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']);

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

  • 相关阅读:
    数字类型内置方法
    流程控制之while循环
    流程控制之if判断
    基本运算符
    格式化输出的三种方式
    Python与用户交互
    解压缩
    布尔值(bool)
    django基础 -- 8.cookie 和 session
    为博客园文章添加目录的方法
  • 原文地址:https://www.cnblogs.com/xiaommvik/p/11353411.html
Copyright © 2011-2022 走看看