Я пытаюсь использовать библиотеку Volley для связи с моим API RESTful.
У меня есть строка POST в теле, когда я прошу предъявить токен. Строка должна выглядеть так: grant_type = пароль & имя пользователя = Alice & пароль = password123 И заголовок: Content-Type: application/x-www-form-urlencoded
Дополнительная информация о индивидуальных аккаунтах WebApi: http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api
К сожалению, я не могу понять, как это решить.
Я пробую что-то вроде этого:
StringRequest req = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
VolleyLog.v("Response:%n %s", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.e("Error: ", error.getMessage());
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("grant_type", "password");
params.put("username", "User0");
params.put("password", "Password0");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/x-www-form-urlencoded");
return headers;
}
};
Я получаю 400 Bad Request все время. Я думаю, что я действительно отправляю запрос следующим образом:
grant_type:password, username:User0, password:Password0
вместо:
grant_type=password&username=Alice&password=password123
Буду очень признателен, если у кого-нибудь есть идеи или советы.