Apache HttpClient - Gestion des cookies

Les cookies sont des fichiers texte stockés sur l'ordinateur client et ils sont conservés à diverses fins de suivi des informations.

HttpClient fournit un support pour les cookies que vous pouvez créer et gérer les cookies.

Créer un cookie

Suivez les étapes ci-dessous pour créer un cookie à l'aide de la bibliothèque HttpClient.

Étape 1 - Créer un objet Cookiestore

le CookieStoreL'interface représente le magasin abstrait pour les objets Cookie. Vous pouvez créer un magasin de cookies en instanciant leBasicCookieStore class, une implémentation par défaut de cette interface.

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

Étape 2 - Créer un objet ClientCookie

En plus des fonctionnalités d'un cookie, ClientCookie peut récupérer les cookies d'origine sur le serveur. Vous pouvez créer un cookie client en instanciant leBasicClientCookieclasse. Au constructeur de cette classe, vous devez transmettre la paire clé-valeur que vous souhaitez stocker dans ce cookie particulier.

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

Étape 3 - Définissez les valeurs du cookie

Pour un cookie client, vous pouvez définir / supprimer le chemin, la valeur, la version, la date d'expiration, le domaine, le commentaire et l'attribut à l'aide des méthodes respectives.

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);

Étape 4 - Ajouter un cookie au magasin de cookies

Vous pouvez ajouter des cookies au magasin de cookies en utilisant le addCookie() méthode de la BasicCookieStore classe.

Ajoutez les cookies requis au Cookiestore.

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

Exemple

L'exemple suivant montre comment créer des cookies et les ajouter à un magasin de cookies. Ici, nous avons créé un magasin de cookies, un tas de cookies en définissant les valeurs de domaine et de chemin, et les avons ajoutés au magasin 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);
   }
}

Récupérer un cookie

Vous pouvez ajouter les cookies à un magasin de cookies en utilisant getCookies() méthode de la asicCookieStoreclasse. Cette méthode renvoie une liste contenant tous les cookies du magasin de cookies.

Vous pouvez imprimer le contenu d'un magasin de cookies à l'aide de l'itérateur comme indiqué ci-dessous -

//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());
}

Exemple

L'exemple suivant montre comment récupérer les cookies d'un magasin de cookies. Ici, nous ajoutons un tas de cookies à un magasin de cookies et les récupérons.

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);
   }
}

Production

Lors de l'exécution, ce programme génère la sortie suivante -

[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]