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


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


CookieManager class 提供了 CookieHandler 的精确实现。这将 cookie 的存储与接受和拒绝 cookie 的政策分开。 CookieManager 使用 CookieStore 和 CookiePolicy 进行初始化。 CookieStore 管理存储,CookiePolicy 对象对 cookie 接受/拒绝做出策略决策。

用法:

public CookieManager()
// Create a new cookie manager
public CookieManager(CookieStore store, CookiePolicy cookiePolicy)
// Create a new cookie manager 
// with specified cookie store and cookie policy

CookieManager类中的方法如下表所示

方法 执行的操作
getCookieStore() 此方法将检索当前的 cookie 存储。
setCookiePolicy(CookiePolicy cookiePolicy) 此方法将设置此 cookie 管理器的 cookie 策略。
get(URI uri, Map<String, List<String>> requestHeaders) 此方法将从 cookie 缓存中获取请求标头中指定 URI 的所有适用 cookie。
put(URI uri, Map<String, List<String>> responseHeaders) 此方法将设置所有适用的 cookie

让我们分别讨论此类的所有四种方法,以便更好地理解。开始了:

方法一:

getCookieStore() 方法检索当前 cookie 存储并返回 cookie 管理器当前使用的 cookie 存储。

用法:

public CookieStore getCookieStore() ;

方法二:

setCookiePolicy()方法设置cookie管理器的cookie策略。默认情况下,CookieManager 的实例将具有 cookie 策略ACCEPT_ORIGINAL_SERVER。可以调用该方法来设置另一个cookie策略。

用法:

public void setCookiePolicy(CookiePolicy cookiePolicy) ;

方法三:

get() 方法从 cookie 缓存中获取请求标头中所需 URI 的所有适用 cookie。由实现需要考虑 URI 以及 cookies 属性和安全设置来确定应返回哪些属性。 HTTP 协议实现者应确认在添加与选择 cookie 相关的所有请求标头之后以及发送请求之前调用此方法。

用法:

public Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders)

参数:作为参数传递的 URI 指定 cookie 的预期用途。特别是,该方案应反映 cookie 是否将通过 HTTP、HTTPS 发送,或者在其他上下文(如 JavaScript)中使用。

方法四:

put() 方法将响应标头中存在的所有适用的 cookie(例如名为 Set-Cookie2 的响应标头字段)设置到 cookie 缓存中。

用法:

public void put(URI uri, Map<String,List<String>> responseHeaders)

执行:

示例

Java


// Java Program to illustrate getCookieStore()method of
// java.net.CookieManager Class
// java.net package is imported
// for network related things
import java.net.*;
// Importing List class from
// java.util package
import java.util.List;
// Class
// To set CookiePolicy in JavaCookieManager Class
public class GFG {
    // Main driver method
    public static void main(String args[]) throws Exception
    {
        // Random URI as input
        String uri = "https://www.geeksforgeeks.org/";
        // Creating an object of Cookie Manager Class
        // Creating an object of CookieManager Class
        CookieManager cookieManager = new CookieManager();
        //  Setting and unsetting system wide Cookie Handler
        // using the setDefault() method
        CookieHandler.setDefault(cookieManager);
        // Pre-defined policy that accepts cookies
        // from original server.
        CookiePolicy cookiePolicy
            = CookiePolicy.ACCEPT_ORIGINAL_SERVER;
        // Setting the cookie policy of the cookieManager
        // class using the setCookiePolicy() method
        cookieManager.setCookiePolicy(cookiePolicy);
        // Now, creating an object of URL class
        URL url = new URL(uri);
        // Establishing the connection over the object
        // of URLConnection class
        URLConnection connection = url.openConnection();
        // Receiving the response
        connection.getContent();
        // Lastly, creating object of CookieStore to
        // retrieve current cookie store instance
        CookieStore cookieStore
            = cookieManager.getCookieStore();
        // For this, creating an List of object type
        // HttpCookie
        List<HttpCookie> cookieList
            = cookieStore.getCookies();
        // Iterating over the List of objects
        // using the for each loop
        for (HttpCookie cookie : cookieList) {
            // Print the Domain name and Cookie name using
            // using getName() and getDomain() method
            System.out.println("Domain name is: "
                               + cookie.getDomain());
            System.out.println("Cookie name is: "
                               + cookie.getName());
        }
    }
}

输出:

The Domain is: www.geeksforgeeks.org
java.net.InMemoryCookieStore@4590c9c3


相关用法


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