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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。