Учебники

Apache HttpClient — управление файлами cookie

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

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

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

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

Шаг 1 — Создать объект Cookiestore

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

//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 клиента вы можете установить / удалить путь, значение, версию, срок действия, домен, комментарий и атрибут, используя соответствующие методы.

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 — Добавить куки в магазин печенья

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

Добавьте необходимые куки в Cookiestore .

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

пример

Следующий пример демонстрирует, как создавать куки и добавлять их в магазин куки. Здесь мы создали хранилище 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 с помощью Итератора, как показано ниже —

//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 в магазин и получаем их обратно.

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

Выход

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