Http cookie store in Android

18,639

You get your cookies from HttpResponse response:

Header[] mCookies = response.getHeaders("cookie");

and add them to your next request:

HttpClient httpClient = new DefaultHttpClient();

//parse name/value from mCookies[0]. If you have more than one cookie, a for cycle is needed.
CookieStore cookieStore = new BasicCookieStore();
Cookie cookie = new BasicClientCookie("name", "value");
cookieStore.addCookie(cookie);

HttpContext localContext = new BasicHttpContext();
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);

HttpGet httpGet = new HttpGet("http://www.domain.com/"); 

HttpResponse response = httpClient.execute(httpGet, localContext);
Share:
18,639
monomi
Author by

monomi

Updated on June 04, 2022

Comments

  • monomi
    monomi over 1 year

    I am developing an Android client for the site with authorization. I have a post method. Example my code:

    public void run() {
        handler.sendMessage(Message.obtain(handler, HttpConnection.DID_START));
        httpClient = new DefaultHttpClient();
        HttpConnectionParams.setSoTimeout(httpClient.getParams(), 25000);
        HttpResponse response = null;
        try{            
            switch (method){
            case POST:
                HttpPost httpPost = new HttpPost(url);
                httpPost.setHeaders(headers);
                if (data != null) httpPost.setEntity(new StringEntity(data));
                response = httpClient.execute(httpPost);
                break;
            }
            processEntity(response);
    
        }catch(Exception e){
            handler.sendMessage(Message.obtain(handler, HttpConnection.DID_ERROR, e));
    
        }
        ConnectionManager.getInstanse().didComplete(this);      
    }
    

    How to keep cookies?