Skip to main content
 首页 » 编程开发

网站添加QQ登陆API调试报错"可能是服务器无法请求https协议"

2年前 (2016-10-11)58641百度已收录

网站添加QQ登陆API调试报错,错误信息如下:

Warning: file_get_contents(
https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=100392036&redirect_uri=oauth%2Fcallback.php&client_secret=e50df09387f0326b85cbe36782f5fd7d&code=F5611ED4CE40698E2E8319276881F61F
) [function.file-get-contents]: failed to open stream: No such file or directory in D:\wwwroot\b2bku\API\class\URL.class.php on line 49
可能是服务器无法请求https协议
可能未开启curl支持,请尝试开启curl支持,重启web服务器,如果问题仍未解决,请联系我们

但服务器已经开启curl支持了,为什么还提示这个呢?解决方法有如下两种:
1、打开php_openssl.dll模块
2、或者修改api\comm\utils.php (PHP SDK是这个)

function get_url_contents($url)
{
    if (ini_get("allow_url_fopen") == "1")
        return file_get_contents($url);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_URL, $url);
    $result =  curl_exec($ch);
    curl_close($ch);
    return $result;
}


替换为:

function get_url_contents($url)
{
     $ch = curl_init();    
     curl_setopt($ch, CURLOPT_URL,$url);    
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);    
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
     $result = curl_exec($ch);    
     return $result;
}

原因如下:
OpenSSL没有开启!
OpenSSL是一套用于SSL/TLS协议的加密工具,其作用有:
1.生成私有密钥.
2.生成证书,即数字签名证书,它包含一个公有密钥,可以用来单向的加密和解密数据.即,使用公钥加密的数据,只能使用
私有密钥解密.使用私钥加密的数据,可以使用公钥来解密.
3.计算信息摘要.
4.SSL/TLS客户端和服务器端测试.
5.处理S/MIME标记和邮件的加密.

 

阅读延展
评论列表1条评论
跨境电商运营
跨境电商运营回复 很给力!!!!!
发表评论
新浪微博
微信