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]