• 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);  //有返回值
  • 相关阅读:
    动态规划最后一击
    leetcode N-Queens I && N-Queens II
    leetcode Spiral Matrix
    leetcode Submission Details
    由网易云音乐到算法体会
    leetcode Rotate Image
    线性表之双链表
    线性表之循环单链表
    线性表之单链表
    [HDU] 1561 The more, The Better 树形DP加01分组背包
  • 原文地址:https://www.cnblogs.com/djiz/p/6414335.html
Copyright © 2020-2023  润新知