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]