La clase CookieManager proporciona una implementación precisa de CookieHandler . Esto separa el almacenamiento de cookies de la política de aceptación y rechazo de cookies. Un CookieManager se inicializa con un CookieStore y una CookiePolicy. CookieStore administra el almacenamiento y el objeto CookiePolicy toma decisiones de política sobre la aceptación/rechazo de cookies.
Sintaxis:
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
Los métodos dentro de la clase CookieManager se muestran a continuación en la tabla
Método | Acción realizada |
---|---|
getCookieStore() | Este método recuperará el almacén de cookies actual. |
setCookiePolicy(CookiePolicy política de cookies) | Este método establecerá la política de cookies de este administrador de cookies. |
get(URI uri, Map<String, List<String>> requestHeaders) | Este método obtendrá todas las cookies aplicables de un caché de cookies para el URI especificado en el encabezado de la solicitud. |
put(URI uri, Map<String, List<String>> encabezados de respuesta) | Este método establecerá todas las cookies aplicables. |
Discutamos los cuatro métodos de esta clase individualmente para obtener una mejor comprensión. Aquí vamos:
Método 1:
El método getCookieStore() recupera el almacén de cookies actual y devuelve el almacén de cookies utilizado actualmente por el administrador de cookies.
Sintaxis:
public CookieStore getCookieStore() ;
Método 2:
El método setCookiePolicy() establece la política de cookies del administrador de cookies. Una instancia de CookieManager tendrá la política de cookies ACCEPT_ORIGINAL_SERVER de forma predeterminada. Se puede llamar a este método para establecer otra política de cookies.
Sintaxis:
public void setCookiePolicy(CookiePolicy cookiePolicy) ;
Método 3:
El método get() obtiene todas las cookies aplicables de un caché de cookies para el URI requerido dentro del encabezado de la solicitud. Depende de la implementación requerir bajo consideración la URI y, por lo tanto, los atributos de las cookies y la configuración de seguridad para determinar cuál de ellos debe devolverse. Los implementadores del protocolo HTTP deben confirmar que se llama a este método después de agregar todos los encabezados de solicitud asociados con la elección de cookies y antes de enviar la solicitud.
Sintaxis:
public Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders)
Parámetros: el URI pasado como argumento especifica el uso previsto para las cookies. En particular, el esquema debe reflejar si las cookies se enviarán a través de HTTP, HTTPS o se utilizarán en otro contexto como JavaScript.
Método 4:
El método put() establece todas las cookies aplicables, por ejemplo, los campos de encabezado de respuesta que se denominan Set-Cookie2, presentes en los encabezados de respuesta en un caché de cookies.
Sintaxis:
public void put(URI uri, Map<String,List<String>> responseHeaders)
Implementación:
Ejemplo
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 pcckage 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 ove 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()); } } }
Producción:
The Domain is: www.geeksforgeeks.org java.net.InMemoryCookieStore@4590c9c3
Publicación traducida automáticamente
Artículo escrito por surbhityagi15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA