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]