Php 向GoogleOAuthAPI发出curl请求
我正在尝试执行以下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_
$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中