how to get cookies from volley response
Asked Answered
R

1

5

I need to get the cookies from server response. For network calling i am using volley library.

getRequest(String url, Response.Listener<JSONObject> responseListener, Response.ErrorListener errorListener) {
        try {

            JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, url, null, responseListener
                    , errorListener) {
                @Override
                public Map<String, String> getHeaders() throws AuthFailureError {
                    return getAuthHeader(context);
                }
            };
            RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
            req.setRetryPolicy(policy);
            req.setShouldCache(false);
            addToRequestQueue(req);
        } catch (Exception e) {
            e.printStackTrace();
        }

public static Map<String, String> getAuthHeader(Context context) {
        Map<String, String> headerMap = new HashMap<>();

        headerMap.put("token", auth);     
        headerMap.put("Api-key", API_KEY);
        headerMap.put("Content-Type", CONTENT_TYPE);

        return headerMap;
    }
Rog answered 26/7, 2016 at 13:59 Comment(2)
Possible duplicate of Using cookies with Android volley libraryGlauce
Aren't cookies in the request, not the response?Glauce
R
15
StringRequest req = new StringRequest(Request.Method.GET, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                     Log.i("response",response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                     Log.i("error",error.getMessage());
                    }
                }){

            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                return getAuthHeader(context);
            }

            @Override
            protected Response<String> parseNetworkResponse(NetworkResponse response) {
                // since we don't know which of the two underlying network vehicles
                // will Volley use, we have to handle and store session cookies manually
                Log.i("response",response.headers.toString());
                Map<String, String> responseHeaders = response.headers;
                String rawCookies = responseHeaders.get("Set-Cookie");
                Log.i("cookies",rawCookies);
                return super.parseNetworkResponse(response);
            }

        };
Rog answered 26/7, 2016 at 15:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.