在PHP中使用标头发出GET请求失败

时间:2017-09-25 21:44:59

标签: php http get file-get-contents

我在Postman中提出了相同的请求,它给了我正确的答案,但当我从我的网站拨打同一个电话时,它会崩溃。

我只是试图通过一个标头,即oauth2授权令牌从PHP发出GET请求。

代码(googleLogin.php):

<?php

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

$options = array(
    'http'=>array(
        'method'=>"GET",
        'header'=>"Accept-language: en\r\n" .
                  "Authorization: Bearer " . $_GET["access_token"] . "\r\n"
    )
);

$context = stream_context_create($options);
$file = file_get_contents($url, false, $context);

print_r($file);

?>

错误:

PHP Warning:  
file_get_contents(https://www.googleapis.com/oauth2/v1/userinfo?alt=json): 
failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized
in /home/shawn/public_html/cloud/php/googleLogin.php on line 14

我不知道这个错误是否意味着(i)Web服务器上的文件googleLogin.php没有正确的权限(我试过777),(ii)访问令牌已过期/无效(它不能因为我试过了同样的令牌2秒后成功使用Postman),或者(iii)php正在格式化我的HTTP请求

0 个答案:

没有答案