Java中的Java .net.CookieStore 类
CookieStore是Java中的一个接口,它是 cookie 的存储区域。它用于存储和检索 cookie。 CookieStore 负责删除已过期的 HTTPCookie 实例。
CookieManager通过调用 CookieStore.add() 为每个传入的 HTTP 响应将 cookie 添加到 CookieStore,并通过调用CookieStore.get()为每个传出的 HTTP 请求从 CookieStore 中检索 cookie 。
CookieStore 接口中的方法如下表所示。Method Action Performed add(URI uri, HttpCookie cookie) Adds one HTTP cookie to the store. get(URI uri) Retrieves cookies whose domain matches the URI. getCookies() Get all cookies in CookieStore which are not expired. getURIs() Get all URIs that identify cookies in CookieStore remove(URI uri, HttpCookie cookie) Removes a cookie from CookieStore removeAll() Removes all cookies in the CookieStore
方法一: add(URI uri, HttpCookie cookie)
add(URI uri, HttpCookie cookie)方法将一个 HTTP cookie 添加到存储中。每个传入的HTTP 响应都会调用此方法。如果与给定 URI 对应的 cookie 已经存在,则将其替换为新的。
句法:
public void add(URI uri, HttpCookie cookie)
方法二: get(URI uri)
get(URI uri)方法检索域与 URI 匹配的 cookie。每个传出HTTP 请求都会调用此方法。它返回一个未过期的 HTTP cookie 的不可变列表。如果没有 cookie 与 URI 匹配,则返回一个空列表。如果参数 URI 作为 null 传递,则它会抛出一个名为Null Pointer Exception的异常。
句法:
public List get(URI uri)
方法三: getCookies(
getCookies()方法从 CookieStore 中检索所有未过期的 cookie。它返回一个不可变的 HTTP cookie 列表。如果 CookieStore 中没有 cookie,则返回一个空列表。
句法:
public List getCookies()
方法四: getURIs()
getURIs()方法检索在 CookieStore 中标识 cookie 的所有 URI,并返回一个不可变的 URI 列表。如果 CookieStore 中没有 cookie 与 URI 相关联,它将返回一个空列表。
句法:
public List getURIs()
方法五: remove(URI uri, HttpCookie cookie)
remove(URI uri, HttpCookie cookie)方法删除 CookieStore 中的 cookie,其 URI 与给定的 URI 相关联。如果要删除的 cookie 在添加时与 URI 无关,则 URI 将作为 null 传递。如果 cookie 作为 null 传递,它会抛出一个空指针异常。如果 cookie 被成功删除,则它返回一个布尔值true 。
句法:
public boolean remove(URI uri, HttpCookie cookie)
方法 6: removeAll()
removeAll()方法删除 CookieStore 中的所有 cookie。如果所有 cookie 都被成功删除,则它返回一个布尔值true 。
句法:
public boolean removeAll()
程序:
Java
import java.io.*;
import java.net.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// CookieManager and CookieStore
CookieManager cookieManager = new CookieManager();
CookieStore cookieStore
= cookieManager.getCookieStore();
// creating cookies and URI
HttpCookie cookieA = new HttpCookie("First", "1");
HttpCookie cookieB = new HttpCookie("Second", "2");
URI uri
= URI.create("https://www.geeksforgeeks.org/");
// Method 1 - add(URI uri, HttpCookie cookie)
cookieStore.add(uri, cookieA);
cookieStore.add(null, cookieB);
System.out.println(
"Cookies successfully added\n");
// Method 2 - get(URI uri)
List cookiesWithURI = cookieStore.get(uri);
System.out.println(
"Cookies associated with URI in CookieStore : "
+ cookiesWithURI + "\n");
// Methos 3 - getCookies()
List cookieList = cookieStore.getCookies();
System.out.println("Cookies in CookieStore : "
+ cookieList + "\n");
// Method 4 - getURIs()
List uriList = cookieStore.getURIs();
System.out.println("URIs in CookieStore" + uriList
+ "\n");
// Method 5 - remove(URI uri, HttpCookie cookie)
System.out.println(
"Removal of Cookie : "
+ cookieStore.remove(uri, cookieA));
List remainingCookieList = cookieStore.getCookies();
System.out.println(
"Remaining Cookies : " + cookieList + "\n");
// Method 6 - removeAll()
System.out.println("Removal of all Cookies : "
+ cookieStore.removeAll());
List EmptyCookieList = cookieStore.getCookies();
System.out.println(
"Empty CookieStore : " + cookieList);
}
}
Cookies successfully added
Cookies associated with URI in CookieStore : [First="1"]
Cookies in CookieStore : [First="1", Second="2"]
URIs in CookieStore[http://www.geeksforgeeks.org]
Removal of Cookie : true
Remaining Cookies : [Second="2"]
Removal of all Cookies : true
Empty CookieStore : []