Php 向GoogleOAuthAPI发出curl请求

Php 向GoogleOAuthAPI发出curl请求,php,curl,Php,Curl,我正在尝试执行以下curl请求: $url = "https://www.googleapis.com/oauth2/v1/userinfo?access_token=$access_token"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if (!empty($headers)) curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_

我正在尝试执行以下curl请求:

$url = "https://www.googleapis.com/oauth2/v1/userinfo?access_token=$access_token";

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
if (!empty($headers)) curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, '');
curl_setopt($ch, CURLOPT_VERBOSE, true);

$resp = curl_exec($ch); 
echo $resp; //prints 'Not found'
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $httpCode; //prints '404'
curl_close($ch);
第一个回波打印“未找到”,第二个打印“404”。不过,如果我回显$url?$params,并将输出的url复制到浏览器的地址栏,页面将打开。不知道在正确的url上找不到的原因。有人能告诉我我做错了什么吗

提前谢谢你

UPD。下面是curl_getinfo的转储:

试试这个:

    $url = "https://www.googleapis.com/oauth2/v1/userinfo";
    $params = "access_token=$access_token";

    $ch = curl_init($url . '?' . $params);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    if (!empty($headers)) curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_VERBOSE, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


    $resp = curl_exec($ch); 
    echo $resp; //prints 'Not found'
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    echo $httpCode; //prints '404'
    curl_close($ch);
现在,您正在使用GET发送,并且忽略SSL证书。

请尝试以下操作:

    $url = "https://www.googleapis.com/oauth2/v1/userinfo";
    $params = "access_token=$access_token";

    $ch = curl_init($url . '?' . $params);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    if (!empty($headers)) curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_VERBOSE, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


    $resp = curl_exec($ch); 
    echo $resp; //prints 'Not found'
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    echo $httpCode; //prints '404'
    curl_close($ch);

现在您正在使用GET发送,而忽略SSL证书。

您确定在代码中的$url末尾添加了问号吗?显示curl_getinfo中的所有信息。顺便说一下,在您的浏览器中使用GET,在上面的代码中使用POST@Nin,谢谢您的回答。更新了问题$curl\u post如果为false,我正在执行GET Request如果您正在执行GET,您应该将$params添加到您的url您确定在代码中的$url末尾添加了问号吗?显示curl\u getinfo中的所有信息。顺便说一下,在您的浏览器中使用GET,在上面的代码中使用POST@Nin,谢谢您的回答。更新了问题$curl_post如果为false,我正在执行GET请求如果您正在执行GET,您应该将$params添加到您的url中