Package java.net

Class CookieManager


public class CookieManager
extends CookieHandler
This class provides a concrete implementation of CookieHandler. It separates the storage of cookies from the policy which decides to accept or deny cookies. The constructor can have two arguments: a CookieStore and a CookiePolicy. The former is in charge of cookie storage and the latter makes decision on acceptance/rejection. CookieHandler is in the center of cookie management. User can make use of CookieHandler.setDefault to set a CookieManager as the default one used. CookieManager.put uses CookiePolicy.shouldAccept to decide whether to put some cookies into a cookie store. Three built-in CookiePolicy is defined: ACCEPT_ALL, ACCEPT_NONE and ACCEPT_ORIGINAL_SERVER. Users can also customize the policy by implementing CookiePolicy. Any accepted HTTP cookie is stored in CookieStore and users can also have their own implementation. Up to now, Only add(URI, HttpCookie) and get(URI) are used by CookieManager. Other methods in this class may probably be used in a more complicated implementation. There are many ways to customize user's own HTTP cookie management: First, call CookieHandler.setDefault to set a new CookieHandler implementation. Second, call CookieHandler.getDefault to use CookieManager. The CookiePolicy and CookieStore used are customized. Third, use the customized CookiePolicy and the CookieStore. This implementation conforms to RFC 2965 section 3.3.
Since:
1.6
  • Constructor Details

    • CookieManager

      public CookieManager()
      Constructs a new cookie manager. The invocation of this constructor is the same as the invocation of CookieManager(null, null).
    • CookieManager

      public CookieManager​(CookieStore store, CookiePolicy cookiePolicy)
      Constructs a new cookie manager using a specified cookie store and a cookie policy.
      Parameters:
      store - a CookieStore to be used by cookie manager. The manager will use a default one if the arg is null.
      cookiePolicy - a CookiePolicy to be used by cookie manager ACCEPT_ORIGINAL_SERVER will be used if the arg is null.
  • Method Details

    • get

      public Map<String,​List<String>> get​(URI uri, Map<String,​List<String>> requestHeaders) throws IOException
      Searches and gets all cookies in the cache by the specified uri in the request header.
      Specified by:
      get in class CookieHandler
      Parameters:
      uri - the specified uri to search for
      requestHeaders - a list of request headers
      Returns:
      a map that record all such cookies, the map is unchangeable
      Throws:
      IOException - if some error of I/O operation occurs
    • put

      public void put​(URI uri, Map<String,​List<String>> responseHeaders) throws IOException
      Sets cookies according to uri and responseHeaders
      Specified by:
      put in class CookieHandler
      Parameters:
      uri - the specified uri
      responseHeaders - a list of request headers
      Throws:
      IOException - if some error of I/O operation occurs
    • setCookiePolicy

      public void setCookiePolicy​(CookiePolicy cookiePolicy)
      Sets the cookie policy of this cookie manager. ACCEPT_ORIGINAL_SERVER is the default policy for CookieManager.
      Parameters:
      cookiePolicy - the cookie policy. if null, the original policy will not be changed.
    • getCookieStore

      public CookieStore getCookieStore()
      Gets current cookie store.
      Returns:
      the cookie store currently used by cookie manager.