Autor Beitrag
Ilimburan
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 18.10.09 18:17 
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 www.abc123.de
die seite an die ich mein letzes formular senden muss heißt aber nun 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
ausblenden 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
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 19.10.09 17:27 
keiner ne idee :(
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 19.10.09 17:59 
wenn ich im 2. code idcookiemanager2 durch idcookiemanager1 ersetze bekomme ich die fehlermeldung

"ConnectionClosedGracefully"
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Di 20.10.09 09:20 
user profile iconIlimburan hat folgendes geschrieben Zum zitierten Posting springen:
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: www.swissdelphicente...showarticle.php?id=1

EDIT: Außerdem bin ich mir nicht sicher ob man leere Felder versenden kann.
ausblenden 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.