Apache HttpClient - Gestione dei cookie
I cookie sono file di testo memorizzati sul computer client e vengono conservati per vari scopi di tracciamento delle informazioni.
HttpClient fornisce il supporto per i cookie che è possibile creare e gestire i cookie.
Creazione di un cookie
Seguire i passaggi indicati di seguito per creare un cookie utilizzando la libreria HttpClient.
Passaggio 1: crea l'oggetto Cookiestore
Il CookieStorel'interfaccia rappresenta l'archivio astratto per gli oggetti Cookie. È possibile creare un cookie store istanziando il fileBasicCookieStore class, un'implementazione predefinita di questa interfaccia.
//Creating the CookieStore object
CookieStore cookieStore = new BasicCookieStore();
Passaggio 2: creare l'oggetto ClientCookie
Oltre alle funzionalità di un cookie, ClientCookie può ottenere i cookie originali nel server. È possibile creare un cookie client istanziando il fileBasicClientCookieclasse. Al costruttore di questa classe, devi passare la coppia chiave-valore che desideri memorizzare in quel particolare cookie.
//Creating client cookie
BasicClientCookie clientCookie = new BasicClientCookie("name","Raju");
Passaggio 3: impostare i valori per il cookie
Per un cookie client, è possibile impostare / rimuovere percorso, valore, versione, data di scadenza, dominio, commento e attributo utilizzando i rispettivi metodi.
Calendar myCal = new GregorianCalendar(2018, 9, 26);
Date expiryDate = myCal.getTime();
clientcookie.setExpiryDate(expiryDate);
clientcookie.setPath("/");
clientcookie.setSecure(true);
clientcookie.setValue("25");
clientcookie.setVersion(5);
Passaggio 4: aggiungi cookie al negozio di cookie
È possibile aggiungere cookie al negozio di cookie utilizzando il addCookie() metodo del BasicCookieStore classe.
Aggiungi i cookie necessari al file Cookiestore.
//Adding the created cookies to cookie store
cookiestore.addCookie(clientcookie);
Esempio
L'esempio seguente mostra come creare cookie e aggiungerli a un negozio di cookie. Qui, abbiamo creato un cookie store, un gruppo di cookie impostando i valori di dominio e percorso e li abbiamo aggiunti al cookie store.
import org.apache.http.client.CookieStore;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;
public class CookieHandlingExample {
public static void main(String args[]) throws Exception{
//Creating the CookieStore object
CookieStore cookiestore = new BasicCookieStore();
//Creating client cookies
BasicClientCookie clientcookie1 = new BasicClientCookie("name","Raju");
BasicClientCookie clientcookie2 = new BasicClientCookie("age","28");
BasicClientCookie clientcookie3 = new BasicClientCookie("place","Hyderabad");
//Setting domains and paths to the created cookies
clientcookie1.setDomain(".sample.com");
clientcookie2.setDomain(".sample.com");
clientcookie3.setDomain(".sample.com");
clientcookie1.setPath("/");
clientcookie2.setPath("/");
clientcookie3.setPath("/");
//Adding the created cookies to cookie store
cookiestore.addCookie(clientcookie1);
cookiestore.addCookie(clientcookie2);
cookiestore.addCookie(clientcookie3);
}
}
Recupero di un cookie
È possibile aggiungere i cookie a un negozio di cookie utilizzando getCookies() metodo del asicCookieStoreclasse. Questo metodo restituisce un elenco che contiene tutti i cookie nel cookie store.
È possibile stampare il contenuto di un negozio di cookie utilizzando Iterator come mostrato di seguito -
//Retrieving the cookies
List list = cookieStore.getCookies();
//Creating an iterator to the obtained list
Iterator it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
Esempio
L'esempio seguente mostra come recuperare i cookie da un negozio di cookie. Qui, stiamo aggiungendo una serie di cookie a un negozio di cookie e recuperandoli.
import org.apache.http.client.CookieStore;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;
public class CookieHandlingExample {
public static void main(String args[]) throws Exception{
//Creating the CookieStore object
CookieStore cookiestore = new BasicCookieStore();
//Creating client cookies
BasicClientCookie clientcookie1 = new BasicClientCookie("name","Raju");
BasicClientCookie clientcookie2 = new BasicClientCookie("age","28");
BasicClientCookie clientcookie3 = new BasicClientCookie("place","Hyderabad");
//Setting domains and paths to the created cookies
clientcookie1.setDomain(".sample.com");
clientcookie2.setDomain(".sample.com");
clientcookie3.setDomain(".sample.com");
clientcookie1.setPath("/");
clientcookie2.setPath("/");
clientcookie3.setPath("/");
//Adding the created cookies to cookie store
cookiestore.addCookie(clientcookie1);
cookiestore.addCookie(clientcookie2);
cookiestore.addCookie(clientcookie3);
}
}
Produzione
All'esecuzione, questo programma genera il seguente output:
[version: 0][name: age][value: 28][domain: .sample.com][path: /][expiry: null]
[version: 0][name: name][value: Raju][domain: my.example.com][path: /][expiry:
null]
[version: 0][name: place][value: Hyderabad][domain: .sample.com][path:
/][expiry: null]