In java many time we need to make a request with cookies support. For example, if a REST service is configured to manage session using cookie session or cookie-based session key then we need to use HTTP client with cookie support.
For this Apache HttpClient client provides HttpClientBuilder
Class, CookieStore
interface and BasicCookieStore
. Using these we can create http client with cookie support.
Java HttpClient with cookie support example:
public class HttpClientCookiExample { // Use custom cookie store if necessary. static CookieStore cookieStore; public final static void main(String[] args) throws Exception { cookieStore = new BasicCookieStore(); // Create HttpClient using cookie store try (CloseableHttpClient httpclient = HttpClients.custom().setDefaultCookieStore(cookieStore).build()) { HttpGet httpget = new HttpGet("https://google.co.in"); System.out.println("Executing request " + httpget.getRequestLine()); try (CloseableHttpResponse response = httpclient.execute(httpget)) { System.out.println("----------------------------------------"); System.out.println(response.getStatusLine()); // Get hold of the response entity HttpEntity entity = response.getEntity(); // If the response does not enclose an entity, there is no need // to bother about connection release if (entity != null) { try (InputStream inStream = entity.getContent()) { inStream.read(); // do something useful with the response } catch (IOException ex) { // In case of an IOException the connection will be released // back to the connection manager automatically throw ex; } } List cookies = cookieStore.getCookies(); for (Cookie cookie : cookies) { // Can access over attributes of cookie System.out.println(cookie.getName() + " : " + cookie.getValue()); } } } } }