[Java] HttpsURLConnection Cookies auslesen/setzen

12/18/2014 16:18 Dingtax#1
Hallo,
ich versuche gerade eine Captcha in mein Programm zu laden und da lösen zu lassen. Die Eingabe soll später per POST-Aufruf übermittelt werden.
Allerdings ist der Code für die Captcha dynamisch und ich kann ihn deswegen nicht einfach aus dem Quellcode kopieren.
Meine Idee:
  1. Seite öffnen & Cookies hohlen
  2. Captcha hohlen (Cookies mitgeben)
  3. POST-Aufruf (Cookies mitgeben)

Doch wie bekomme ich alle gesetzten Cookies aus einer HttpsURLConnection und wie gebe ich diese bei einem POST-Aufruf wieder mit?

Vielen Dank für eure Hilfe!
12/22/2014 12:00 Menan#2
Code:
List<String> cookies = connection.getHeaderFields().get("Set-Cookie");
12/23/2014 11:20 RecK#3
Um vielleicht dazu eine kurze Erklärung statt eine stupide Codezeile zu geben:

Eine Anfrage bzw Antwort vom/zum Server ist ein "Paket".
Ein solches Paket unterteilt sich in einen "Header" (Kopf) und in einen Body.
Im Body steht die "Nutzlast" wie beispielsweise POST oder GET-Parameter.
Im Header hast du nun die "Kopfinformationen" des Paketes.
Dazu gehören beispielsweise Cookies.
Wenn ein Server ein Cookie setzt, steht im "Antwort-Paket-Header" ein Set-Cookie Feld.
Das ist ein String wo die Cookies und ihre Werte enthalten sind.
Manche alten Browser unterstützen nur max. 256 Byte in diesem Feld.
Wenn Cookies "normal übertragen" werden, sind diese im "Cookie"-Feld gespeichert.

Wie ud genau mit Java und deinem Request-Objekt auf diese Felder im Header zugreifst,
siehst du a beim Poster vor mir oder in der entsprechenden Doku.

lg