此 POST 请求实现有什么问题?
2022-09-02 00:39:22
我一直在使用Java处理Google OAuth 2.0,并在实现过程中遇到了一些未知错误。
以下用于 POST 请求的 CURL 工作正常:
curl -v -k --header "Content-Type: application/x-www-form-urlencoded" --data "code=4%2FnKVGy9V3LfVJF7gRwkuhS3jbte-5.Arzr67Ksf-cSgrKXntQAax0iz1cDegI&client_id=[my_client_id]&client_secret=[my_client_secret]&redirect_uri=[my_redirect_uri]&grant_type=authorization_code" https://accounts.google.com/o/oauth2/token
并产生所需的结果。
但是以下在java中实现上述POST请求会导致一些错误,
检查以下代码中的响应并指出此处的错误:(使用了Apache http-components)"invalid_request"
HttpPost post = new HttpPost("https://accounts.google.com/o/oauth2/token");
HttpParams params = new BasicHttpParams();
params.setParameter("code", code);
params.setParameter("client_id", client_id);
params.setParameter("client_secret", client_secret);
params.setParameter("redirect_uri", redirect_uri);
params.setParameter("grant_type", grant_type);
post.addHeader("Content-Type", "application/x-www-form-urlencoded");
post.setParams(params);
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(post);
尝试了每个参数,但这也不起作用。
可能的原因是什么?URLEncoder.encode( param , "UTF-8")