#android #json #http-status-code-400
#Android #json #http-status-code-400
Вопрос:
Я использую push-уведомления Urban airship для Android. При этом я хочу использовать широковещательную рассылку для отправки уведомлений всем моим пользователям. При использовании этого я получаю ошибку 400 bad request.
Пожалуйста, скажите мне, что не так в моем коде:
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("sixxxxxxw","YSxxxxxxxxxx:Fxxxxxxxxxxxx".toCharArray());
}
});
URL url = new URL("https://go.urbanairship.com/api/airmail/send/broadcast/");
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestProperty("Content-Type","application/json");
//connection.setRequestProperty("Content-Length", Integer.toString(data.length()));
JSONObject json = new JSONObject();
json.put("title","My title");
json.put("message","My message");
try {
output = connection.getOutputStream();
output.write(json.toString().getBytes());
} finally {
if (output != null) { output.close(); }
}
int status = ((HttpURLConnection) connection).getResponseCode();
System.out.println("status is..." status);
Фактически JSON Payload
, что я хочу отправить, это:
{
"push": {
"aps": {
"alert": "New message!"
}
},
"title": "Message title",
"message": "Your full message here.",
"extra": {
"some_key": "some_value"
}
}
или также, если у вас есть sample code for using urban airpship push notifications broadcast api
, пожалуйста, поделитесь здесь.
Как отправить это payload
в службу с помощью HttpsURLConnection.?
Спасибо
Ответ №1:
Вот как вы «создаете» свою полезную нагрузку JSON:
JSONObject json = new JSONObject();
JSONObject push = new JSONObject();
JSONObject aps = new JSONObject();
JSONObject extra = new JSONObject();
aps.put("alert", "New message!");
push.put("aps", aps);
json.put("push", push);
json.put("title","My title");
json.put("message","My message");
extra.put("some_key","some_value");
json.put("extra", extra);
Комментарии:
1. Я добавил json.put(«extra», extra); также внизу все та же ошибка
2. Вы уверены, что ваш URL правильный? Это должно заканчиваться чем-то вроде …/boardcast.json
3. мой URL-адрес такой: go.urbanairship.com/api/airmail/send/broadcast когда вы открываете это, оно также показывает аутентификацию..
Ответ №2:
JSON, который вы создаете в своем коде, содержит только заголовок и сообщение. Недостатки
"push": {
"aps": {
"alert": "New message!"
}
},
и
"extra": {
"some_key": "some_value"
}
не так ли?