Apache HttpClient - Quản lý cookie
Cookie là các tệp văn bản được lưu trữ trên máy khách và chúng được lưu giữ cho các mục đích theo dõi thông tin khác nhau.
HttpClient cung cấp hỗ trợ cho các cookie mà bạn có thể tạo và quản lý cookie.
Tạo một cookie
Làm theo các bước dưới đây để tạo cookie bằng thư viện HttpClient.
Bước 1 - Tạo đối tượng Cookestore
Các CookieStoregiao diện đại diện cho cửa hàng trừu tượng cho các đối tượng Cookie. Bạn có thể tạo một kho lưu trữ cookie bằng cách khởi tạoBasicCookieStore lớp, một triển khai mặc định của giao diện này.
//Creating the CookieStore object
CookieStore cookieStore = new BasicCookieStore();
Bước 2 - Tạo đối tượng ClientCookie
Ngoài các chức năng của cookie, ClientCookie có thể lấy cookie gốc trong máy chủ. Bạn có thể tạo cookie khách hàng bằng cách khởi tạoBasicClientCookielớp học. Đối với hàm tạo của lớp này, bạn cần chuyển cặp khóa-giá trị mà bạn muốn lưu trữ trong cookie cụ thể đó.
//Creating client cookie
BasicClientCookie clientCookie = new BasicClientCookie("name","Raju");
Bước 3 - Đặt giá trị cho cookie
Đối với cookie khách hàng, bạn có thể đặt / xóa đường dẫn, giá trị, phiên bản, ngày hết hạn, miền, nhận xét và thuộc tính bằng các phương pháp tương ứng.
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);
Bước 4 - Thêm cookie vào kho cookie
Bạn có thể thêm cookie vào kho cookie bằng cách sử dụng addCookie() phương pháp của BasicCookieStore lớp học.
Thêm các cookie cần thiết vào Cookiestore.
//Adding the created cookies to cookie store
cookiestore.addCookie(clientcookie);
Thí dụ
Ví dụ sau minh họa cách tạo cookie và thêm chúng vào kho cookie. Ở đây, chúng tôi đã tạo một kho lưu trữ cookie, một loạt các cookie bằng cách đặt các giá trị tên miền và đường dẫn, đồng thời thêm chúng vào kho lưu trữ 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);
}
}
Lấy một cookie
Bạn có thể thêm cookie vào cửa hàng cookie bằng cách sử dụng getCookies() phương pháp của asicCookieStorelớp học. Phương thức này trả về một danh sách chứa tất cả cookie trong kho cookie.
Bạn có thể in nội dung của kho lưu trữ cookie bằng cách sử dụng Iterator như hình dưới đây -
//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());
}
Thí dụ
Ví dụ sau minh họa cách lấy cookie từ kho cookie. Ở đây, chúng tôi đang thêm một loạt cookie vào kho lưu trữ cookie và lấy lại chúng.
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);
}
}
Đầu ra
Khi thực thi, chương trình này tạo ra kết quả sau:
[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]