Um mit dem CookieManager arbeiten zu können, muss man eigentlich nicht viel beachten. Wichtig ist, dass man weiß, dass man den CookieManager nicht direkt mit der URLConnection bekannt zu machen braucht. Die URLConnection füllt den CookieManager im Hintergrund über den CookieHandler.
Wie man diese Klassen ineinander steckt zeigt dieser kleine Beispielcode:
// create CookieManager
CookieManager manager = new CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(manager);
CookieStore cookieJar = manager.getCookieStore();
// get the url connection
HttpsURLConnection urlConn = (HttpsURLConnection) new URL("foobar").openConnection();
Man sieht, dass man den CookieManager nur initialisieren und ihm eine CookiePolicy geben muss um an Cookies einer Seite zu kommen. In diesem Beispiel akzeptiert der CookieManager alle Cookies.
Man macht dann den CookieManager mit dem CookieHandler per setDefault-Methode bekannt und kann sich schonmal den CookieStore besorgen, denn dieser enthält schlussendlich die Cookie-Informationen.
// set all necessary cookies
for(HttpCookie cookie : cookieJar.getCookies()){
urlConn.setRequestProperty("Cookie", cookie.toString());
}
Nachdem alles registriert wurde, lassen sich die Cookies nun einfach aus dem CookieStore auslesen und weiterverwenden.