HttpClient 4.x how to use cookies?

36 篇文章 0 订阅

 

public void generateRequest()

{

    DefaultHttpClient httpclient = new DefaultHttpClient();

    HttpPost httppost = new HttpPost("http://mysite.com/login");

    httpclient.getParams().setParameter("http.useragent", "Custom Browser");

    httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,

            HttpVersion.HTTP_1_1);

    httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY,

            CookiePolicy.BROWSER_COMPATIBILITY);

 

    CookieStore cookieStore = new BasicCookieStore();

    HttpContext localContext = new BasicHttpContext();

    localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);

 

    try

    {

        LOG.info("Status Code: sending");

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);

        nameValuePairs.add(new BasicNameValuePair("email", "john@gmail.com"));

        nameValuePairs.add(new BasicNameValuePair("password", "mypassword"));

        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        httppost.setHeader("ContentType", "application/x-www-form-urlencoded");

        HttpResponse response = httpclient.execute(httppost, localContext);

        HttpEntity entity = response.getEntity();

        if (entity != null)

        {

            entity.consumeContent();

        }

        iterateCookies(httpclient);

 

    }

    catch (ClientProtocolException e)

    {

        LOG.error("ClientProtocolException", e);

    }

    catch (IOException e)

    {

        LOG.error("IOException", e);

    }

}

 

private void iterateCookies(DefaultHttpClient httpclient)

{

    List<Cookie> cookies = httpclient.getCookieStore().getCookies();

    if (cookies.isEmpty())

    {

        System.out.println("No cookies");

    }

    else

    {

        for (Cookie c : cookies)

        {

            System.out.println("-" + c.toString());

        }

    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值