2016-04-14 3 views
1

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); 

Antwort

Verwandte Themen