当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java java.net.CookieStore用法及代码示例


CookieStore是Java中的一个接口,是cookie的存储区域。它用于存储和检索 cookie。 CookieStore 负责删除已过期的 HTTPCookie 实例。

CookieManager 通过调用 CookieStore.add() 将 cookie 添加到每个传入 HTTP 响应的 CookieStore 中,并通过调用 CookieStore.get() 从每个传出 HTTP 请求的 CookieStore 中检索 cookie。

CookieStore接口内的方法如下表所示。

方法 执行的操作
add(URI uri, HttpCookie cookie) 向存储区添加一个 HTTP cookie。
get(URI uri) 检索域与 URI 匹配的 cookie。
getCookies() 获取CookieStore中所有未过期的cookie。
getURIs() 获取CookieStore中标识cookie的所有URI
remove(URI uri, HttpCookie cookie) 从 CookieStore 中删除 cookie
removeAll() 删除 CookieStore 中的所有 cookie

方法一:添加(URI uri,HttpCookie cookie)

add(URI uri, HttpCookie cookie) 方法向存储区添加一个 HTTP cookie。每个传入的 HTTP 响应都会调用此方法。如果与给定 URI 对应的 cookie 已存在,则将其替换为新的 cookie。

用法:

public void add(URI uri, HttpCookie cookie)

方法二:获取(URI uri)

获取(URI uri)方法检索域与 URI 匹配的 cookie。每次传出时都会调用此方法HTTP请求。它返回未过期的 HTTP cookie 的不可变列表。如果没有 cookie 与 URI 匹配,则返回一个空列表。如果参数 URI 作为 null 传递,则会引发异常 NullPointerException .

用法:

public List<HttpCookie> get(URI uri)

方法三:获取 Cookies(

getCookies() 方法从 CookieStore 中检索所有未过期的 cookie。它返回一个不可变的 HTTP cookie 列表。如果 CookieStore 中没有 cookie,则返回一个空列表。

用法:

public List<HttpCookie> getCookies()

方法四:getURIs()

getURIs() 方法检索标识 CookieStore 中 cookie 的所有 URI,并返回不可变的 URI 列表。如果 CookieStore 中没有 cookie 与 URI 关联,它将返回一个空列表。

用法:

public List<URI uri> getURIs()

方法五:删除(URI uri,HttpCookie cookie)

remove(URI uri, HttpCookie cookie) 方法删除 CookieStore 中 URI 与给定 cookie 关联的 cookie。如果要删除的 cookie 在添加时与 URI 无关,则 URI 将作为 null 传递。如果 cookie 作为 null 传递,则会抛出 NullPointerException 。如果 cookie 被成功删除,那么它返回一个布尔值 true。

用法:

public boolean remove(URI uri, HttpCookie cookie)

方法六: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");
        // Method 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[https://www.geeksforgeeks.org]

Removal of Cookie : true
Remaining Cookies : [Second="2"]

Removal of all Cookies : true
Empty CookieStore : []


相关用法


注:本文由纯净天空筛选整理自venniladeenan大神的英文原创作品 java.net.CookieStore Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。