Using apache httpclient how to set cookie for HTTP request

I am trying to set abc = 123 cookie before sending an HTTP request.

In response, I expect the same cookie to be sent back. But in the answer, I get abc = 890, where the value is set by the target server.

DefaultHttpClient httpclient = new DefaultHttpClient(); CookieStore cookieStore = httpclient.getCookieStore(); BasicClientCookie cookie = new BasicClientCookie("abc", "123"); // Prepare a request object HttpGet httpget = new HttpGet("http://abc.net/restofurl"); cookieStore.addCookie(cookie); httpclient.setCookieStore(cookieStore); // Execute the request HttpResponse response = httpclient.execute(httpget); // Examine the response status log.info("Http request response is: " + response.getStatusLine()); List<Cookie> cookies = cookieStore.getCookies(); for (int i=0; i<cookies.size();i++) { if (cookies.get(i).getName().toString().equals("abc")) { log.info("cookie is: " + cookies.get(0).getValue().toString()); } } 

thanks

+7
source share
2 answers

It worked after adding

 cookie.setDomain(".xyz.net"); cookie.setPath("/"); 
+8
source

Problem solved by changing

 log.info("cookie is: " + cookies.get(0).getValue().toString()); 

in

 log.info("cookie is: " + cookies.get(i).getValue().toString()); 

?

0
source

All Articles