Da Java 6 esiste la classe java.net.CookieManager che è utilizzabile insieme a java.net.CookieHandler (che esisteva già da Java 5).
Ecco un esempio basilare:
codice:import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.CookieHandler; import java.net.CookieManager; import java.net.HttpURLConnection; import java.net.URL; public class ProvaCookie { public static void main(String[] args) { try { CookieManager cookieManager = new CookieManager(); CookieHandler.setDefault(cookieManager); printGetJsonFromHttpUrl(new URL("http://httpbin.org/cookies/set?nome=Paolino&cognome=Paperino")); System.out.println("----------"); printGetJsonFromHttpUrl(new URL("http://httpbin.org/cookies")); System.out.println("----------"); printGetJsonFromHttpUrl(new URL("http://httpbin.org/cookies/set?luogoNascita=Paperopoli")); System.out.println("----------"); printGetJsonFromHttpUrl(new URL("http://httpbin.org/cookies")); } catch (Exception e) { System.err.println(e); } } public static void printGetJsonFromHttpUrl(URL url) throws IOException { HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); httpUrlConn.setUseCaches(false); // non applica il caching! httpUrlConn.setRequestProperty("Accept", "application/json"); if (httpUrlConn.getResponseCode() != HttpURLConnection.HTTP_OK) { System.out.println("Status code: " + httpUrlConn.getResponseCode()); return; } InputStream is = httpUrlConn.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "UTF-8"); // JSON per default è in UTF-8 BufferedReader br = new BufferedReader(isr); String line; try { while ((line = br.readLine()) != null) { System.out.println(line); } } finally { br.close(); } } }
Provalo così come è. Vedrai che i cookie vengono mantenuti e passati di volta in volta con le varie request. Poi commenta/cancella la riga con il setDefault e vedrai che ... nessun cookie è mantenuto.
Note:
1) Ho usato i servizi di httpbin.org semplicemente perché permette facilmente di "giocare" un po' con HTTP.
2) Quella sopra è chiaramente una applicazione standalone. Con le applet possono esserci "grane" in più, più che altro per le solite e note restrizioni (se non hai preso provvedimenti). Non ho modo adesso di fare prove con applet "vere" in un browser.

Rispondi quotando