Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Guzzle客户端错误响应/错误请求400 Google OAuth2令牌_Php_Oauth_Google Plus_Guzzle_Bad Request - Fatal编程技术网

PHP Guzzle客户端错误响应/错误请求400 Google OAuth2令牌

PHP Guzzle客户端错误响应/错误请求400 Google OAuth2令牌,php,oauth,google-plus,guzzle,bad-request,Php,Oauth,Google Plus,Guzzle,Bad Request,狂饮的请求 try { $url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?'; $client = new Client(); $request = $client->createRequest('GET', $url); $query = $request->getQuery(); $query['access_token'] = $access_token; $res

狂饮的请求

try {
    $url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?';

    $client = new Client();
    $request = $client->createRequest('GET', $url);

    $query = $request->getQuery();
    $query['access_token'] = $access_token;

    $response = $client->send($request);

    $json = $response->json();

    if(!empty($json) && !isset($json['error'])) {
        return ($json['audience']==GOOGLE_CLIENT_ID);
    }

} catch(\Exception $e) {
    echo $e->getMessage();
}
狂饮反应

Client error response
[status code] 400
[reason phrase] Bad Request
[url] https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxx
简单卷曲请求

$url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxx';
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,$url);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false); //disable SSL check
$json_response = curl_exec($curl_handle);
curl_close($curl_handle);
$response = json_decode($json_response);
return $response;
简单卷曲反应

stdClass Object
(
    [issued_to] => xxx-xxx.apps.googleusercontent.com
    [audience] => xxx-xxx.apps.googleusercontent.com
    [user_id] => xxx
    [scope] => https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.me
    [expires_in] => 3581
    [access_type] => offline
)
我不知道我在Guzzle上做错了什么,正如你们所看到的,我在使用CURL时得到了成功的结果,但在Guzzle上得到了错误的请求…有什么想法吗

更新:


我发现guzzle在响应代码为200/OK时返回实际响应,否则它返回guzzle异常。现在我不知道如何在出现错误时获得实际响应?

在配置guzzle时,您似乎希望将异常设置为false。在这里可以看到类似的答案:


我发现解决方案使用了
RequestException
而不是
Exception

try {
  //Google oAuth2 Code   
} catch(RequestException $e) {
  $response = $e->getResponse()->json(); //Get error response body
}

在guzzle中,当您的
url
无效时会发生这种类型的错误。您在浏览器中测试过url吗?是的,正如我所说的一样,url和凭据在cURL中工作正常,但在使用guzzle时出错。这里的问题和仅guzzle相同。guzzle(v3.9)oauth2请求也存在同样的问题
try {
  //Google oAuth2 Code   
} catch(RequestException $e) {
  $response = $e->getResponse()->json(); //Get error response body
}