當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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