Apache HttpClient - zarządzanie plikami cookie

Pliki cookie to pliki tekstowe przechowywane na komputerze klienta i przechowywane w celu śledzenia różnych informacji.

HttpClient zapewnia obsługę plików cookie, które można tworzyć i zarządzać plikami cookie.

Tworzenie pliku cookie

Wykonaj poniższe czynności, aby utworzyć plik cookie przy użyciu biblioteki HttpClient.

Krok 1 - Utwórz obiekt Cookiestore

Plik CookieStoreinterfejs reprezentuje abstrakcyjny magazyn dla obiektów Cookie. Możesz utworzyć magazyn plików cookie, tworząc wystąpienieBasicCookieStore class, domyślna implementacja tego interfejsu.

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

Krok 2 - Utwórz obiekt ClientCookie

Oprócz funkcji plików cookie, ClientCookie może pobrać oryginalne pliki cookie na serwer. Możesz utworzyć plik cookie klienta, tworząc wystąpienieBasicClientCookieklasa. Do konstruktora tej klasy musisz przekazać parę klucz-wartość, którą chcesz przechowywać w tym konkretnym pliku cookie.

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

Krok 3 - Ustaw wartości dla pliku cookie

Do pliku cookie klienta można ustawić / usunąć ścieżkę, wartość, wersję, datę wygaśnięcia, domenę, komentarz i atrybut przy użyciu odpowiednich metod.

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

Krok 4 - Dodaj plik cookie do magazynu plików cookie

Możesz dodać pliki cookie do sklepu z plikami cookie za pomocą addCookie() metoda BasicCookieStore klasa.

Dodaj wymagane pliki cookie do Cookiestore.

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

Przykład

Poniższy przykład pokazuje, jak tworzyć pliki cookie i dodawać je do magazynu plików cookie. Tutaj utworzyliśmy magazyn plików cookie, zestaw plików cookie, ustawiając wartości domeny i ścieżki, i dodaliśmy je do magazynu plików cookie.

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

Pobieranie pliku cookie

Możesz pobrać pliki cookie dodane do sklepu z plikami cookie za pomocą getCookies() metoda asicCookieStoreklasa. Ta metoda zwraca listę, która przechowuje wszystkie pliki cookie w magazynie plików cookie.

Możesz wydrukować zawartość sklepu z plikami cookie za pomocą Iteratora, jak pokazano poniżej -

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

Przykład

Poniższy przykład pokazuje, jak odzyskać pliki cookie z magazynu plików cookie. Tutaj dodajemy kilka plików cookie do magazynu plików cookie i odzyskujemy je z powrotem.

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

Wynik

Podczas wykonywania ten program generuje następujące dane wyjściowe -

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