Entwickler-Ecke

Internet / Netzwerk - Cookies werden nicht übergeben


Blamaster - Sa 23.08.08 18:01
Titel: Cookies werden nicht übergeben
Hi,

ich bin gerade dabei über Idhttp und den CookieManager einen Cookie zu übergeben. Das klappt nun allerdings nicht so recht.


Delphi-Quelltext
1:
2:
Idhttp1.CookieManager.AddCookie('user=*****-*****''host.com');
Idhttp1.Get('http://link.html', lstream);


Wenn ich nun meinen netzwerk verkehr sniffe bekomme ich allerdings nur folgendes:


Delphi-Quelltext
1:
2:
3:
4:
5:
GET /link.html HTTP/1.1
Content-Type: text/html
Host: host.com
Accept: text/html, */*
User-Agent: Mozilla/3.0 (compatible; Indy Library)


Wenn ich allerdings über Mozilla direkt auf den Link zugreife bekomme ich vom sniffer folgende Infos:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
GET /link.html HTTP/1.1
Host: host.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: user=******-********


Da beim Linkaufrufen über Mozilla der Cookie im Sniff Log auftaucht beim Idhttp.Get allerdings nicht, vermute ich doch stark das der Cookie nicht übergeben wird.

Nur woran kann das liegen ?

mfg Blamaster


matze - Sa 23.08.08 22:39

Also entweder du hast den CookieManager nicht richtig mit der HTTP Kompo verbunden, oder du legst den Cookie falsch an.
Also z.b. für den falschen Host oder für die falsche URL.


Blamaster - So 24.08.08 10:28

Kann man testweise die cookies irgendwie manuell ohne den cookie manager übergeben ?

mfg Blamaster


matze - So 24.08.08 10:34

Du kannst ja bei der Indy HTTP Komponente selber auf die Header Einfluss nehmen.
DA kannst du dann selber den Cookie Header einbauen.


Yogu - So 24.08.08 12:19

user profile iconmatze hat folgendes geschrieben:
Also entweder du hast den CookieManager nicht richtig mit der HTTP Kompo verbunden

Das kann eigentlich nicht sein:

user profile iconBlamaster hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
Idhttp1.CookieManager.AddCookie('user=*****-*****''host.com');
Idhttp1.Get('http://link.html', lstream);

Er greift ja über den HTTP-Client auf den CookieManager zu.


matze - So 24.08.08 14:08

Oh stimmt. Hatte ich ganz übersehen.
Dann gibts eigentlich nur noch die Möglichkeit, dass er den Cookie falsch erstellt.

Ich glaube in der HTTP Komponente gabs auch noch ne Option ob Cookies akzeptiert werden oder nicht. Vielleicht steht die auf falseund vielleicht hat das Einfluss?


Blamaster - So 24.08.08 15:00

Ne daran sollte es nicht liegen ... cookies werden von der idhhtp akzeptiert ist also auf true gesetzt.

Wie genau könnte ich den cookie denn manuell in den header einbauen ?

mfg Blamaster


Yogu - So 24.08.08 17:22

user profile iconBlamaster hat folgendes geschrieben:
Wie genau könnte ich den cookie denn manuell in den header einbauen ?

Indem du die Cookie-Zeile dem Header hinzufügst. :idea:


Quelltext
1:
Cookie: user=******-********                    


Flamefire - Sa 22.11.08 10:44

mal ne Frage: welches Programm hast du benutzt um die Header zu kriegen?


GTA-Place - Sa 22.11.08 11:22

Entweder du nimmst Wireshark [http://www.wireshark.org/] oder entsprechende Firefox-Plugins wie Firebug [https://addons.mozilla.org/de/firefox/addon/1843].