Entwickler-Ecke
Internet / Netzwerk - Idhttp und cookies
Ilimburan - So 18.10.09 18:17
Titel: Idhttp und cookies
hallo erstmal an alle
bin zur zeit dabei meine delphi kenntnisse ein wenig auszubaun und versuche dafür zu zeit mich über die idhhtp komponennt auf einer website einzuloggen was auch funzt
danach soll über die .get funktion ein seitenquelltext in ein memo geladen werden eine zeichenkombination rausgesucht werden und diese in einem weiteren formular über.post abgeschickt werden bis dahin klappt das auch alels wunderbar nur dann fängt mein problem an ich müsste noch ein weiteres formular abschicken was eigentlich kein problem sein sollte nur (das ist ein beispiel)
die seite auf der ich mich zu anfang einlogge heißt z.B
http://www.abc123.de
die seite an die ich mein letzes formular senden muss heißt aber nun
http://www.abc123.de/index
das heißt es wird nicht mehr erkannt das ich noch eingeloggt bin und um dem server das klar zu machen müsste ich doch eig nur cookies an den server senden oder?
diese müssten natürlich erstmal erkannt werden wenn ich mich am anfang einlogge
hier mal mein bisherieger code
login auf der seite
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| try Paramstringl := TStringList.Create; try http.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)' ; http.HandleRedirects := true; http.RedirectMaximum := 15; http.AllowCookies := true; http.CookieManager := idcookiemanager1;
Paramstringl.add('_qf__login='); Paramstringl.add('w='); Paramstringl.add('module='); Paramstringl.add('_action='); Paramstringl.add('area='); Paramstringl.add('username='+Benu_ed.Text); Paramstringl.Add('password='+pw_ed.Text); Paramstringl.Add('submit=login');
str := http.Post('www.abc123.de', Paramstringl); finally Paramstringl.free; end;
showmessage(str) finally http.free; end; |
und hiermit versuche ich dann beim letzen formular weiterzukommen
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| try Paramstringl := TStringList.Create; try http.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)' ; http.HandleRedirects := true; http.RedirectMaximum := 15; http.AllowCookies := true; http.CookieManager := idcookiemanager2;
Paramstringl.add('_qf__search='); Paramstringl.add('w=102'); Paramstringl.add('_route=9607df4311a5229692b6f34950c492a4'); Paramstringl.add('secureId='+copy(memo2.Text,(pos('<input name="secureId" type="hidden" value="',memo2.Text))+44,(pos('<input id="cityId"',Memo2.Text))-49-(pos('<input name="secureId" type="hidden" value="',memo2.Text)))); Paramstringl.add('city_Id='); Paramstringl.add('selected_vehicle='); Paramstringl.Add('city=Neuss'); Paramstringl.Add('submit=suchen');
str := http.Post('www.abc123.de/index', Paramstringl); finally paramstringl.Free; end;
finally http.Free; end; |
hoffe sehr das ihr mir bei meinem problem helfen könnt
mfg
ilim
Ilimburan - Mo 19.10.09 17:27
keiner ne idee :(
Andreas L. - Mo 19.10.09 17:50
Du verwendest 2 verschiedene CookieManager. Ersetze im zweiten Code idcookiemanager2 mit idcookiemanager1, dann sollte es gehen.
EDIT: Achja, du musst im ersten Code schon Memo2.Text den Wert von str zuweisen.
Ilimburan - Mo 19.10.09 17:59
wenn ich im 2. code idcookiemanager2 durch idcookiemanager1 ersetze bekomme ich die fehlermeldung
"ConnectionClosedGracefully"
Andreas L. - Di 20.10.09 09:20
Ilimburan hat folgendes geschrieben : |
wenn ich im 2. code idcookiemanager2 durch idcookiemanager1 ersetze bekomme ich die fehlermeldung
"ConnectionClosedGracefully" |
Hast du auch mein EDIT umgesetzt? Ansonsten dürfte das hier interessant für dich sein:
http://www.swissdelphicenter.ch/en/showarticle.php?id=1
EDIT: Außerdem bin ich mir nicht sicher ob man leere Felder versenden kann.
Delphi-Quelltext
1:
| Paramstringl.add('selected_vehicle='); |
Vllt. solltest du solche Felder mal auskommentieren oder nochmal die Seite anschauen, evtl. findest du noch einen Wert für die Parameter.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!