После того, как вы потратили много времени на поиски возможных причин «плохого запроса» при запросе на токен в https://accounts.google.com/o/oauth2/token, я решил спросить, почему этот код не может получить ничего, кроме ответа «плохого запроса» с сервера. ..Конечная точка Google oauth возвращает «плохой запрос» ... но почему?
String url = "https://accounts.google.com/o/oauth2/token";
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
con.setChunkedStreamingMode(0);
con.setRequestMethod("POST");
con.setRequestProperty("Host", "accounts.google.com");
con.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
con.setRequestProperty("code", authCode);
con.setRequestProperty("client_id",
"[CLIENT_ID]");
con.setRequestProperty("client_secret", "[CLIENT_SECRET");
con.setRequestProperty("redirect_uri",
"http://localhost:8080/login");
con.setRequestProperty("grant_type", "authorization_code");
// Send post request
con.setDoOutput(true);
Я должен установить con.setChunkedStreamingMode(0)
, поскольку сервер возвращал ошибку, связанную с длиной содержимого.
Любые идеи? Может ли понадобиться разместить полезную нагрузку в одной строке? как?
Я думаю, что вы правы. Умм у меня есть другой вопрос ... на эту строку запроса нужно ссылаться только на конкретные свойства oauth? или я должен установить там тип контента? – JPCF
Только параметры строки запроса. Content-Type должен быть настроен как HTTP-заголовок. Я обновил свой ответ, чтобы показать образец HTTP POST из документации Google. –
Спасибо, человек! Я был ослеплен! – JPCF