Visualizzazione dei risultati da 1 a 3 su 3

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    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.
    Ultima modifica di andbin; 13-07-2016 a 16:53
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Quote Originariamente inviata da andbin Visualizza il messaggio
    [...]
    Ti ringrazio! Semplifica di molto il problema!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.