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
相关用法
- Java java.net.CookiePolicy用法及代码示例
- Java java.net.CookieStore用法及代码示例
- Java java.net.CookieHandler用法及代码示例
- Java java.net.CacheResponse用法及代码示例
- Java java.net.CacheRequest用法及代码示例
- Java java.net.SocketException用法及代码示例
- Java java.net.Proxy用法及代码示例
- Java java.net.ProxySelector用法及代码示例
- Java java.net.ProtocolFamily用法及代码示例
- Java java.net.SocketOption用法及代码示例
- Java java.net.SecureCacheResponse用法及代码示例
- Java java.net.SocketImplFactory用法及代码示例
- Java java.net.ResponseCache用法及代码示例
- Java java.net.URLPermission用法及代码示例
- Java java.net.NetPermission用法及代码示例
- Java java.net.FileNameMap用法及代码示例
- Java java.net.PasswordAuthentication用法及代码示例
- Java java.net.BindException用法及代码示例
- Java java.net.URLConnection用法及代码示例
- Java java.net.Socket用法及代码示例
- Java java.net.ServerSocket用法及代码示例
- Java java.net.InetAddress用法及代码示例
- Java java.nio.ByteBuffer用法及代码示例
- Java java.nio.IntBuffer用法及代码示例
- Java java.nio.file.FileStore用法及代码示例
注:本文由纯净天空筛选整理自surbhityagi15大神的英文原创作品 java.net.CookieManager Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。