来自服务器的令牌响应以齐射到Django休息框架

时间:2016-04-14 18:47:40

标签: android android-volley

服务器有Django Rest Framework。我有用户名,密码,client_id和client_secret。现在我需要使用这些凭证生成访问令牌。如何使用(Android)凌空向服务器发送请求,以便我可以使用令牌进行响应。

(样本回复)

{"access_token": "123", "token_type": "Bearer", "expires_in": 36000, "refresh_token": "123", "scope": "read write groups"}

访问令牌生成过程是 -

curl -X POST -d "grant_type=password&username=**&password=**" -u "client_id:client_secret" 

url:  http://ip:port/oAuthTokenGeneration/token/

这是我尝试过的,但是得到了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);

1 个答案:

答案 0 :(得分:1)

查看链接。它是一个很好的啧啧。 https://smaspe.github.io/2013/06/06/volley-part2.html