zoukankan      html  css  js  c++  java
  • php curl访问https 域名接口一直报错的问题

    这两天一直在对接一个https的接口

    通过本地postman完美链接后再服务器一直报错

    出现问题:linux 下 curl可以正常访问 但是PHP请求一直返回false

    测试方法:var_dump(curl_error($ch)); <在close之前>

      返回:“SSL: certificate subject name 'xxx' does not match target host name 'www.miniscores.cn'”

      这说明ssl证书有问题,如果对方没有给定证书。就忽略吧。

    解决办法:

      1、忽略证书(两个都要加上!否则并不能忽略):

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

      2、自然是让对方提供证书啦

    另转大神(TAOisMESS)的其他问题解决方案:

    在命令行中使用curl调用跳过SSL证书检查的方法,需要的朋友可以参考下。
     
     
    症状:php curl调用https出错 
    排查方法:在命令行中使用curl调用试试。 
    原因:服务器所在机房无法验证SSL证书。 
    解决办法:跳过SSL证书检查。 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     
    症状:php curl调用curl_exec返回bool(false),命令行curl调用正常。 
    排查方法: 
    var_dump(curl_error($ch)); 
    返回: 
    string(23) "Empty reply from server" 
    再排查: 
    curl_setopt($ch, CURLOPT_HEADER, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); 
    返回: 
    HTTP/1.1 100 Continue 
    Connection: close 
    原因:php curl接收到HTTP 100就结束了,应该继续接收HTTP 200 
    解决方案: 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); 
  • 相关阅读:
    php之面向对象(2)
    PHP ON 阿里云的环境配置攻略
    InitPHP框架搭建高可用WEB应用
    PHP移动互联网开发笔记(6)——MySQL数据库基础回顾[1]
    5 个不用 Bootstrap 的理由
    http中get与post的区别
    django的CSRF保护机制
    博客园项目开发中的难点
    centos7.5静态网页基于nginx建站(python3.6 mysql5.7 nginx安装以及配置)
    python3面向对象常用特性知识点
  • 原文地址:https://www.cnblogs.com/wobeinianqing/p/9346689.html
Copyright © 2011-2022 走看看