JSON отправка логина и пароля
Подскажите пожалуйста, правильно ли я отправляю логин и пароль? Я должен через java отправить чтоб получилось так:

Вот мой код:
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> map=new HashMap<>();
map.put("login", txtLogin.getText().toString());
map.put("password",txtPassword.getText().toString());
return map;
}
};
Но я получаю ошибку 422
Ответы (3 шт):
Автор решения: ThePrettyFace
→ Ссылка
Попробуй обернуть эти данные в какой-то класс, например Credentials.
public class Credentials{
private String name;
private String password;
public Credentials(String name, String password){
...
}
}
И затем возвращать объект Credentials вместо Map.
Ошибку выдаёт из-за того, что toString() у мапы не подходит под структуру JSON'а
Автор решения: AVRamones
→ Ссылка
Смотря с какой библиотекой для осуществления запросов вы работаете. Через Retrofit вроде так проще всего так:
JSONObject object = new JSONObject();
object.put("login", txtLogin.getText().toString());
object.put("login", txtPassword.getText().toString());
return object;
Автор решения: GRAND
→ Ссылка
Решил проблему заменив тот код на:
`public byte[] getBody() throws AuthFailureError{
JSONObject jsonObject = new JSONObject();
String body = null;
try
{
jsonObject.put("login", txtLogin.getText().toString());
jsonObject.put("password", txtPassword.getText().toString());
body = jsonObject.toString();
} catch (JSONException e)
{
e.printStackTrace();
}
try
{
return body.toString().getBytes("utf-8");
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
return null;
}` и получил ответ 200 ОК