Я создаю приложение, которое регистрируется с учетными данными пользователя для Spotify. Я следую за этот API вызов: https://developer.spotify.com/web-api/authorization-guide/#client_credentials_flowПочему я продолжаю получать ошибку 400 после публикации в Android?
И это код implenentation:
@Override
protected Session doInBackground(String... params) {
Session session = new Session();
try {
String response = "";
URL url = new URL(GET_TOKEN_URL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
String credentials = params[0]+":"+params[1];
String basicAuth ="Basic "+new String(android.util.Base64.encode(credentials.getBytes(), Base64.DEFAULT));
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter(GRANT_TYPE, CLIENT_CREDENTIALS);
String query = builder.build().getEncodedQuery();
httpURLConnection.setRequestProperty(AUTH, basicAuth);
httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
httpURLConnection.setRequestProperty("Content-Language", "en-US");
httpURLConnection.setDoInput(true);
httpURLConnection.setUseCaches(false);
httpURLConnection.setDoOutput(true);
httpURLConnection.setRequestMethod(POST);
httpURLConnection.connect();
OutputStream os = httpURLConnection.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.flush();
writer.close();
os.close();
int responseCode=httpURLConnection.getResponseCode();
session.setResponseCode(responseCode);
if (responseCode == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br=new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
while ((line=br.readLine()) != null) {
response+=line;
}
}else{
Log.e(getClass().getSimpleName(), "RESPONSE:" + responseCode);
// response = "Something went wrong";
}
Log.d(getClass().getSimpleName(), response);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
}
return session;
}
Но независимо от того, что я могу изменить, я буду всегда получаю сообщение об ошибке 400.
Что я делаю неправильно ?
Update:
Я выполнил завиток с онлайновым инструментом после точного синтаксиса разработчиков веб-страницы Spotify, и я до сих пор есть HTTP STATUS 400
Для начала слушайте то, что говорит вам сервер. 400 - это код ответа HTTP для «Bad Request». Это означает, что сервер не удовлетворен запросом, который вы ему отправили. В нем может отсутствовать информация или содержать неверно отформатированную информацию. – EJK
похоже, что у вас может быть опечатка в вашем коде. Я вижу полуточку после «else» – EJK
@EJK Да, я формирую POST с параметрами, которые Spotify должен выполнить. Im asuming Im строя что-то неправильно. – chntgomez