Apache HttpClient - Gestión de cookies

Las cookies son archivos de texto almacenados en la computadora del cliente y se guardan para varios propósitos de rastreo de información.

HttpClient proporciona soporte para cookies que puede crear y administrar cookies.

Creando una cookie

Siga los pasos que se indican a continuación para crear una cookie usando la biblioteca HttpClient.

Paso 1: crear un objeto Cookiestore

los CookieStoreLa interfaz representa el almacén abstracto de los objetos Cookie. Puede crear una tienda de cookies instanciando elBasicCookieStore class, una implementación predeterminada de esta interfaz.

//Creating the CookieStore object
CookieStore cookieStore = new BasicCookieStore();

Paso 2: crear el objeto ClientCookie

Además de las funcionalidades de una cookie, ClientCookie puede obtener las cookies originales en el servidor. Puede crear una cookie de cliente instanciando elBasicClientCookieclase. Al constructor de esta clase, debe pasar el par clave-valor que desea almacenar en esa cookie en particular.

//Creating client cookie
BasicClientCookie clientCookie = new BasicClientCookie("name","Raju");

Paso 3: establecer valores para la cookie

Para una cookie de cliente, puede establecer / eliminar ruta, valor, versión, fecha de caducidad, dominio, comentario y atributo utilizando los métodos respectivos.

Calendar myCal = new GregorianCalendar(2018, 9, 26);
Date expiryDate = myCal.getTime();
clientcookie.setExpiryDate(expiryDate);
clientcookie.setPath("/");
clientcookie.setSecure(true);
clientcookie.setValue("25");
clientcookie.setVersion(5);

Paso 4: agregue cookies a la tienda de cookies

Puede agregar cookies a la tienda de cookies usando el addCookie() método del BasicCookieStore clase.

Agregue las cookies requeridas al Cookiestore.

//Adding the created cookies to cookie store
cookiestore.addCookie(clientcookie);

Ejemplo

El siguiente ejemplo demuestra cómo crear cookies y agregarlas a una tienda de cookies. Aquí, creamos un almacén de cookies, un montón de cookies estableciendo los valores de dominio y ruta, y los agregamos al almacén de cookies.

import org.apache.http.client.CookieStore;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;

public class CookieHandlingExample {
   
   public static void main(String args[]) throws Exception{
      
      //Creating the CookieStore object
      CookieStore cookiestore = new BasicCookieStore();
 
      //Creating client cookies
      BasicClientCookie clientcookie1 = new BasicClientCookie("name","Raju");
      BasicClientCookie clientcookie2 = new BasicClientCookie("age","28");
      BasicClientCookie clientcookie3 = new BasicClientCookie("place","Hyderabad");

      //Setting domains and paths to the created cookies
      clientcookie1.setDomain(".sample.com");
      clientcookie2.setDomain(".sample.com");
      clientcookie3.setDomain(".sample.com");

      clientcookie1.setPath("/");
      clientcookie2.setPath("/");
      clientcookie3.setPath("/");
 
      //Adding the created cookies to cookie store
      cookiestore.addCookie(clientcookie1);
      cookiestore.addCookie(clientcookie2);
      cookiestore.addCookie(clientcookie3);
   }
}

Recuperando una cookie

Puede agregar las cookies a una tienda de cookies usando getCookies() método del asicCookieStoreclase. Este método devuelve una lista que contiene todas las cookies en el almacén de cookies.

Puede imprimir el contenido de una tienda de cookies utilizando el Iterador como se muestra a continuación:

//Retrieving the cookies
List list = cookieStore.getCookies();

//Creating an iterator to the obtained list
Iterator it = list.iterator();
while(it.hasNext()) {
   System.out.println(it.next());
}

Ejemplo

El siguiente ejemplo demuestra cómo recuperar cookies de una tienda de cookies. Aquí, agregamos un montón de cookies a un almacén de cookies y las recuperamos.

import org.apache.http.client.CookieStore;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;

public class CookieHandlingExample {
 
   public static void main(String args[]) throws Exception{
      
      //Creating the CookieStore object
      CookieStore cookiestore = new BasicCookieStore();
      
      //Creating client cookies
      BasicClientCookie clientcookie1 = new BasicClientCookie("name","Raju");
      BasicClientCookie clientcookie2 = new BasicClientCookie("age","28");
      BasicClientCookie clientcookie3 = new BasicClientCookie("place","Hyderabad");

      //Setting domains and paths to the created cookies
      clientcookie1.setDomain(".sample.com");
      clientcookie2.setDomain(".sample.com");
      clientcookie3.setDomain(".sample.com");

      clientcookie1.setPath("/");
      clientcookie2.setPath("/");
      clientcookie3.setPath("/");
 
      //Adding the created cookies to cookie store
      cookiestore.addCookie(clientcookie1);
      cookiestore.addCookie(clientcookie2);
      cookiestore.addCookie(clientcookie3);
   }
}

Salida

Al ejecutarse, este programa genera la siguiente salida:

[version: 0][name: age][value: 28][domain: .sample.com][path: /][expiry: null]
[version: 0][name: name][value: Raju][domain: my.example.com][path: /][expiry:
null]
[version: 0][name: place][value: Hyderabad][domain: .sample.com][path:
/][expiry: null]