Apache HttpClient - การจัดการคุกกี้

คุกกี้คือไฟล์ข้อความที่เก็บไว้ในคอมพิวเตอร์ไคลเอนต์และจะถูกเก็บไว้เพื่อวัตถุประสงค์ในการติดตามข้อมูลต่างๆ

HttpClient ให้การสนับสนุนคุกกี้ที่คุณสามารถสร้างและจัดการคุกกี้ได้

การสร้างคุกกี้

ทำตามขั้นตอนด้านล่างเพื่อสร้างคุกกี้โดยใช้ไลบรารี HttpClient

ขั้นตอนที่ 1 - สร้างวัตถุ Cookiestore

CookieStoreอินเทอร์เฟซแสดงถึงที่เก็บนามธรรมสำหรับวัตถุคุกกี้ คุณสามารถสร้างที่เก็บคุกกี้ได้โดยการสร้างไฟล์BasicCookieStore คลาสซึ่งเป็นค่าเริ่มต้นของอินเทอร์เฟซนี้

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

ขั้นตอนที่ 2 - สร้างวัตถุ ClientCookie

นอกจากฟังก์ชันของคุกกี้แล้ว ClientCookie ยังสามารถรับคุกกี้ดั้งเดิมในเซิร์ฟเวอร์ได้อีกด้วย คุณสามารถสร้างคุกกี้ไคลเอ็นต์ได้โดยสร้างอินสแตนซ์ไฟล์BasicClientCookieชั้นเรียน ในการสร้างคลาสนี้คุณต้องส่งคู่คีย์ - ค่าที่คุณต้องการเก็บไว้ในคุกกี้นั้น ๆ

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

ขั้นตอนที่ 3 - ตั้งค่าให้กับคุกกี้

สำหรับคุกกี้ไคลเอ็นต์คุณสามารถกำหนด / ลบเส้นทางค่าเวอร์ชันวันหมดอายุโดเมนข้อคิดเห็นและแอตทริบิวต์โดยใช้วิธีการที่เกี่ยวข้อง

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

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการสร้างคุกกี้และเพิ่มลงในที่เก็บคุกกี้ ที่นี่เราได้สร้างที่เก็บคุกกี้ซึ่งเป็นกลุ่มคุกกี้โดยตั้งค่าโดเมนและเส้นทางและเพิ่มสิ่งเหล่านี้ลงในที่เก็บคุกกี้

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

กำลังดึงคุกกี้

คุณสามารถเพิ่มคุกกี้ลงในร้านคุกกี้ได้โดยใช้ getCookies() วิธีการของ asicCookieStoreชั้นเรียน วิธีนี้จะส่งคืนรายการที่เก็บคุกกี้ทั้งหมดไว้ในที่เก็บคุกกี้

คุณสามารถพิมพ์เนื้อหาของที่เก็บคุกกี้โดยใช้ 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());
}

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการดึงคุกกี้จากที่เก็บคุกกี้ ที่นี่เรากำลังเพิ่มคุกกี้จำนวนหนึ่งไปยังที่เก็บคุกกี้และเรียกคืนคุกกี้

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]