Server hat Django Rest Framework. Ich habe Benutzername, Passwort, client_id und client_secret. Jetzt muss ich Access Token mit diesen Anmeldeinformationen generieren. Wie kann ich eine Anfrage an den Server mit (Android) Volley senden, damit ich eine Antwort mit Token bekommen kann.Token Antwort vom Server mit Volley zu Django Rest Framework
(Beispielantwort)
{"access_token": "123", "token_type": "Bearer", "expires_in": 36000, "refresh_token": "123", "scope": "read write groups"}
Access-Token-Erzeugungs-Prozess ist -
curl -X POST -d "grant_type=password&username=**&password=**" -u "client_id:client_secret"
url: http://ip:port/oAuthTokenGeneration/token/
Hier ist, was ich versucht habe, aber immer com.android.volley.ServerError
queue = VolleyHandler.getRequestQueue();
String url="http://ip:port/oAuthTokenGeneration/token/";
StringRequest postRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("access_token:", response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.d("error:","Error-------"+ volleyError.toString());
}
})
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("grant_type","password");
params.put("username","root");
params.put("password","root");
params.put("client_id","id");
params.put("client_secret", "secret");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json;");
return headers;
}
};
queue.add(postRequest);