请求Google OAuth2令牌,Java时,请求400错误

时间:2018-11-02 21:19:17

标签: java http oauth-2.0 google-api

我通过执行“ GET”请求并登录获得了身份验证代码,而我正尝试使用该代码通过http“ POST”获得身份验证令牌,但我总是获得响应代码400。我的代码如下:

// Create HTTP Objects
HttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://www.googleapis.com/oauth2/v4/token");

// Add Header
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");

// Create Parameters
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("code", code));
params.add(new BasicNameValuePair("client_id", client_id));
params.add(new BasicNameValuePair("client_secret", client_secret));
params.add(new BasicNameValuePair("redirect_uri", redirect_uri));
params.add(new BasicNameValuePair("grant_type", "authorization_code"));

// Add Parameters and Excecute
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse response = httpclient.execute(httpPost);

似乎完全符合他们在此处提供的文档: https://developers.google.com/identity/protocols/OAuth2WebServer

有任何想法为什么会这样?

1 个答案:

答案 0 :(得分:0)

好吧,我想通了,这很简单,只需花很长时间即可调试我的代码,以使Google的auth代码过期。

我从Google那里得到了一个新的代码,它可以正常工作。