zoukankan      html  css  js  c++  java
  • php使用curl访问https返回无结果的问题

    最近在做一个微信自动登录,发起验证以后回调页面获取openid时 curl函数返回空。

    $appid = "appid appid "; 
    
    $secret = "secret "; 
    
    $code = $_GET["code"]; 
    
    $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
    
    //header("location:$get_token_url");
    
    echo $get_token_url."<BR>";
    
    $ch = curl_init();
    
    curl_setopt($ch,CURLOPT_URL,$get_token_url); 
    
    curl_setopt($ch,CURLOPT_HEADER,0); 
    
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1 ); 
    
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10); 
    
    $res = curl_exec($ch); 
    
    echo "echo:".json_encode($res)."<br>";     //显示false
    
    echo curl_multi_getcontent($ch)."<br>";   //
    
    curl_close($ch);                     
    
    $json_obj = json_decode($res,true); 
    
    //根据openid和access_token查询用户信息 
    
    $access_token = $json_obj['access_token']; 
    
    $openid = $json_obj['openid']; 
    
    var_dump($res);                                                     //显示obj(false)
    
    echo $openid;

    结果curl无返回值,最终百度到一片文章  http://yanda.net.cn/articles/453  文章中提到

    改成如下问题解决

    $ch = curl_init();
    
    curl_setopt($ch,CURLOPT_URL,$get_token_url); ​
    
    curl_setopt($ch,CURLOPT_HEADER,0); 
    
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证证书
    
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书
    
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1 ); 
    
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10); 
    
    $res = curl_exec($ch); 
    
    var_dump($res);  //有返回值
  • 相关阅读:
    C#学习资源汇总
    ASP.NET MVC从视图传参到控制器的几种形式
    ASP.NET MVC之从控制器传递数据到视图方式
    Scrapy at a glance预览
    登录views
    django加密解密api
    django静态模版使用
    django重定向
    Django 2.1.3 文档
    秀图看图 隐私声明
  • 原文地址:https://www.cnblogs.com/djiz/p/6414335.html
Copyright © 2011-2022 走看看