Ошибка запроса токена обновления веб-API SpotifyJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибка запроса токена обновления веб-API Spotify

Сообщение Anonymous »

Я хотел создать запрос на получение RefreshToken пользователя. Проблема в том, что я получил ошибку HTTP 400. Я модифицировал этот код из существующего кода, где все работало нормально. При этом я получил AccessToken.

Код: Выделить всё

public void getTokens() {
try {
URL url = new URL(accessTokenURL);
HttpURLConnection http = (HttpURLConnection) url.openConnection();

http.setRequestMethod("POST");
http.setDoOutput(true);
http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

String authHeader = Base64.getEncoder().encodeToString((clientID + ":" + clientSecret).getBytes());
http.setRequestProperty("Authorization", "Basic " + authHeader);

String data = "grant_type=authorization_code&code=" + code + "&redirect_uri=" + redirectURL;

byte[] out = data.getBytes(StandardCharsets.UTF_8);

OutputStream stream = http.getOutputStream();
stream.write(out);

BufferedReader Lines = new BufferedReader(new InputStreamReader(http.getInputStream()));
String currentLine = Lines.readLine();
StringBuilder response = new StringBuilder();
while (currentLine != null) {
response.append(currentLine).append("\n");
currentLine = Lines.readLine();
}

this.accessToken = String.valueOf(new JsonParser().parse(String.valueOf(response)).getAsJsonObject().getAsJsonPrimitive("access_token"));
this.refreshToken = String.valueOf(new JsonParser().parse(String.valueOf(response)).getAsJsonObject().getAsJsonPrimitive("refresh_token"));
this.expiresIn = String.valueOf(new JsonParser().parse(String.valueOf(response)).getAsJsonObject().getAsJsonPrimitive("expires_in"));

http.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
Я проверил это с помощью команды Curl, чтобы убедиться, что введенные данные неверны. Там все работало.
Однажды я заменил POST на GET, но это все равно не сработало. (В документации Spotify также указано, что вам необходимо использовать POST)
Я пытался получить RefreshToken от пользователя. Используя аналогичный код, мне удалось получить AccessToken для отправки запросов к платформе. Только не для пользователя. (Как упоминалось выше)

Подробнее здесь: https://stackoverflow.com/questions/784 ... uest-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»