Apache HttpClient - Управление файлами cookie

Файлы cookie - это текстовые файлы, которые хранятся на клиентском компьютере, и они хранятся для различных целей отслеживания информации.

HttpClient обеспечивает поддержку файлов cookie, которые вы можете создавать и управлять ими.

Создание куки

Следуйте инструкциям ниже, чтобы создать файл cookie с использованием библиотеки HttpClient.

Шаг 1. Создайте объект Cookiestore

В CookieStoreИнтерфейс представляет собой абстрактное хранилище для объектов Cookie. Вы можете создать хранилище файлов cookie, создав экземплярBasicCookieStore class, реализация этого интерфейса по умолчанию.

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

Шаг 2 - Создайте объект ClientCookie

В дополнение к функциям cookie ClientCookie может получать исходные файлы cookie на сервере. Вы можете создать клиентский файл cookie, создав экземплярBasicClientCookieкласс. Конструктору этого класса вам необходимо передать пару ключ-значение, которую вы хотите сохранить в этом конкретном файле cookie.

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

Шаг 3 - Установите значения для файла cookie

Для клиентского cookie вы можете установить / удалить путь, значение, версию, дату истечения срока действия, домен, комментарий и атрибут, используя соответствующие методы.

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

Шаг 4 - Добавьте файл cookie в хранилище файлов cookie

Вы можете добавить файлы cookie в хранилище файлов cookie, используя addCookie() метод BasicCookieStore класс.

Добавьте необходимые файлы cookie в Cookiestore.

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

пример

В следующем примере показано, как создавать файлы cookie и добавлять их в хранилище файлов cookie. Здесь мы создали хранилище файлов cookie, группу файлов cookie, установив значения домена и пути, и добавили их в хранилище файлов 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);
   }
}

Получение куки

Вы можете добавить файлы cookie в хранилище файлов cookie, используя getCookies() метод asicCookieStoreкласс. Этот метод возвращает список, содержащий все файлы cookie в хранилище файлов cookie.

Вы можете распечатать содержимое хранилища файлов cookie с помощью Iterator, как показано ниже -

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

пример

В следующем примере показано, как получить файлы cookie из хранилища файлов cookie. Здесь мы добавляем несколько файлов cookie в хранилище файлов 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);
   }
}

Выход

При выполнении эта программа генерирует следующий вывод -

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