Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Post Command abschicken? (https://www.delphipraxis.net/91194-post-command-abschicken.html)

Sh4d0w 1. Mai 2007 08:33


Post Command abschicken?
 
Moin,

Ihr kennt doch wahrscheinlich Seiten mit Captchas (Bilder), welche man einzugeben hat, wenn man auf eine bestimmte Seite weitergeleitet werden möchte. Ich habe nun ein Programm geschrieben, welches den Quellcode dieser Seite ausliest und das Captcha anzeigt. Daneben befindet sich ein Editfeld, wo man die angezeigten Zahlen eintragen kann. Wenn ich nun auf "OK" klicke, sollen die Zahlen an die Seite geschickt werden, damit ich denn Quellcode von der nun öffnenden Seite wieder anzeigen lassen kann - genauso wie wenn ich es im Firefox eintippe. Weiß jemand Rat?

Vielen Dank schonmal!

MfG,
Shadow

Sh4d0w 1. Mai 2007 10:15

Re: Post Command abschicken?
 
Kann mir denn keiner helfen??

mkinzler 1. Mai 2007 10:23

Re: Post Command abschicken?
 
Suche doch mal nach INDY + Post

Sh4d0w 1. Mai 2007 10:35

Re: Post Command abschicken?
 
Ich hatte es mit IdMultipartFormData ausprobiert, nur wenn ich IdMultipartFormData in die Uses-zeile einfüge, sagt er mir:
"Datei nicht gefunden: IdMultipartFormData.dcu"...

mkinzler 1. Mai 2007 10:40

Re: Post Command abschicken?
 
Hast du den INDY installiert? Wenn ja welche Version?

Sh4d0w 1. Mai 2007 10:45

Re: Post Command abschicken?
 
Zitat:

Zitat von mkinzler
Hast du den INDY installiert? Wenn ja welche Version?

Die Komponenten waren schon mit Delphi 6 dabei. Habe jetzt INDY 9 installiert, aber nun erhalte ich wieder einen Fehler:
"Unit IdMultipartFormData wurde mit einer unterschiedlichen Version von IdResourceStrings.RSMFDIvalidObjectType compiliert" :?:

mkinzler 1. Mai 2007 10:46

Re: Post Command abschicken?
 
Laß mal INDY neu erzeugen

SirThornberry 1. Mai 2007 10:50

Re: Post Command abschicken?
 
auf welche Art und weise besorgst du dir den Quelltext von der capatcha-seite? (also welche Komponente)?
Und warum verwendest du Multiparts? genügt ein normales Post nicht aus?

Sh4d0w 1. Mai 2007 10:55

Re: Post Command abschicken?
 
Zitat:

Zitat von SirThornberry
auf welche Art und weise besorgst du dir den Quelltext von der capatcha-seite? (also welche Komponente)?
Und warum verwendest du Multiparts? genügt ein normales Post nicht aus?

Weil ich bisher noch nie "Internet-Anwendungen" geschrieben habe, ich weiß nicht, wie ich das mit dem Post realisieren soll...
Den Quelltext lade ich mit der idHTTP...

Sh4d0w 1. Mai 2007 11:02

Re: Post Command abschicken?
 
Zitat:

Zitat von mkinzler
Laß mal INDY neu erzeugen

Wie meinst du das? Noch mal neu installieren?

SirThornberry 1. Mai 2007 11:08

Re: Post Command abschicken?
 
nutze nächstes mal bitte http://www.delphipraxis.net/template.../icon_edit.gif wenn du noch etwas deinem Beitrag hinzufügen willst.
Eigentlich hast du mit IdHttp schon alles was du benötigst. Derzeit rufst du den Quelltext vermutlich mit
Delphi-Quellcode:
IdHttp1.Get(....)
ab.
Genauso gibt es aber auch
Delphi-Quellcode:
IdHttp1.Post(....)
womit du eben daten posten kannst.

mkinzler 1. Mai 2007 11:09

Re: Post Command abschicken?
 
Lösche mal alle Dateien der alten Version und lasse die Packages der neuen neu erzeugen

Sh4d0w 1. Mai 2007 11:12

Re: Post Command abschicken?
 
@SirThornberry: Ja, ich rufe z.Z mit Get auf, hab auch schon von dem Post Befehl gelesen. Nur wie geht der genau? Muss ich den gleichen Link mit Post aufrufen? Und wie schicke ich die Zeichen aus dem Editfeld dann per Post-Befehl ab? Wäre nett, wenn du mir das erläutern könntest.
@mkinzler: Wenn die einfach Post-Methode funktioniert, kann ich mir das ja sparen. Ansonsten probiere ich das später nochmal aus. Danke!

mkinzler 1. Mai 2007 11:13

Re: Post Command abschicken?
 
Der fEhler könnte aber trotzdem auftreten, weil es mir scheint, daß Dateien von verschidenen INDY-Versionen gemischt vorliegen.

Sh4d0w 1. Mai 2007 11:22

Re: Post Command abschicken?
 
Zitat:

Zitat von mkinzler
Der fEhler könnte aber trotzdem auftreten, weil es mir scheint, daß Dateien von verschidenen INDY-Versionen gemischt vorliegen.

OK, aber was muss ich denn danach machen? Kannst du mir vllt. verraten wie der Post befehl geht?

mkinzler 1. Mai 2007 11:25

Re: Post Command abschicken?
 
Hier im Forum suchenINDY POST

Sh4d0w 1. Mai 2007 11:48

Re: Post Command abschicken?
 
Also ich habe diesen Quelltext der Seite:

Zitat:

<FORM ACTION="link.html" METHOD="post" ID="postit" STYLE="display:inline;">
<INPUT TYPE="HIDDEN" NAME="s" VALUE="3e959f252dc5c6d914a3e4795a6c3d3d">

<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="5">
<TR>
<TD>[img]linkzumbild.gif[/img]</TD>
<TD><INPUT TYPE="TEXT" CLASS="TEXT" MAXLENGTH="3" SIZE="3" NAME="c" STYLE="width: 40px;" VALUE=""></TD>
<TD><INPUT TYPE="SUBMIT" CLASS="BUTTON" NAME="action" VALUE="Los"></TD>
Wie lautet dann der Delphi-Code zum Post-Befehl, evtl. so?

Delphi-Quellcode:
var
  PostInformationStream : TStringStream;
  Parameter : TStringStream;
begin
  idhttp1.HandleRedirects:=true;
  PostInformationStream := TStringStream.Create('');
  Parameter := TStringStream.Create('');
  Parameter.WriteString('los=Edit3.Text');
  try
    IdHTTP1.Post(Edit1.Text, Parameter, PostInformationStream);
    Memo1.Text := PostInformationStream.DataString;
  finally
  Parameter.Free;
  PostInformationStream.Free;
  end;
end;
Was besseres habe ich jetzt nicht gefunden, klappt aber alles nicht. Habe schon einiges ausprobiert. Wäre nett, wenn irgendjemand mir das erklären könnte.

mkinzler 1. Mai 2007 11:50

Re: Post Command abschicken?
 
Du mußt auch die Input-Felder Posten (s, c) und nicht den Button.

Sh4d0w 1. Mai 2007 12:09

Re: Post Command abschicken?
 
Das hat nur ein Feld, weiß auch nicht wieso im Quellcode zwei sind.
Also links ist das Bild, dann kommt das Feld und dann der Button.

muss das dann so sein?

Delphi-Quellcode:
var
  PostInformationStream : TStringStream;
  Parameter : TStringStream;
begin
  idhttp1.HandleRedirects:=true;
  PostInformationStream := TStringStream.Create('');
  Parameter := TStringStream.Create('');
  Parameter.WriteString('s=Edit3.Text');
  try
    IdHTTP1.Post(Edit1.Text, Parameter, PostInformationStream);
    Memo1.Text := PostInformationStream.DataString;
  finally
  Parameter.Free;
  PostInformationStream.Free;
  end;
end;
Ist der Ansatz denn richtig?

mkinzler 1. Mai 2007 12:13

Re: Post Command abschicken?
 
Nein es sind 2. Eines ist vom Typ hidden und scheint eine Session (3e959f252dc5c6d914a3e4795a6c3d3d)o.ä zu repräsentieren.

Delphi-Quellcode:
Parameter.WriteString('s='+Edit3.Text);

Sh4d0w 1. Mai 2007 12:20

Re: Post Command abschicken?
 
Zitat:

Zitat von mkinzler
Nein es sind 2. Eines ist vom Typ hidden und scheint eine Session (3e959f252dc5c6d914a3e4795a6c3d3d)o.ä zu repräsentieren.

Delphi-Quellcode:
Parameter.WriteString('s='+Edit3.Text);

Das geht bei mir leider nicht. Ich bekomme dann in dem Memo nur den aktuellen Quellcode (also den von der Seite mit dem Bild, welchen ich schon habe) angezeigt. :(

mkinzler 1. Mai 2007 12:27

Re: Post Command abschicken?
 
Das Editfeld hat auch den Name c und s die Session

Sh4d0w 1. Mai 2007 12:34

Re: Post Command abschicken?
 
Dann muss das so heißen?
Parameter.WriteString('c='+Edit3.Text);

inherited 1. Mai 2007 12:36

Re: Post Command abschicken?
 
Probiers doch einfach aus :roll:

mkinzler 1. Mai 2007 12:38

Re: Post Command abschicken?
 
Ja und den Parameter s nicht vergessen

Sh4d0w 1. Mai 2007 12:42

Re: Post Command abschicken?
 
Wenn ich jetzt 'c='+Edit3.Text hab, wo muss denn dann s hin? :gruebel:

mkinzler 1. Mai 2007 12:47

Re: Post Command abschicken?
 
Als weiterer Parameter

Sh4d0w 1. Mai 2007 12:51

Re: Post Command abschicken?
 
Zitat:

Zitat von mkinzler
Als weiterer Parameter

??? Kannst du denn nicht als Beispiel zeigen? Damit ichs auch verstehe? Ich mache das heute zum ersten mal...

mkinzler 1. Mai 2007 14:43

Re: Post Command abschicken?
 
Delphi-Quellcode:
var
  Params : TStringList;
...
  Params := TStringList.Create();
  Params.Add('s=3e959f252dc5c6d914a3e4795a6c3d3d');
  Params.Add('c='+Edit3.Text);
  IdHttp1.Pos(URL, Params);

Sh4d0w 1. Mai 2007 14:54

Re: Post Command abschicken?
 
Ich bekomme "Undefinierter Bezeichner: lparams"...

mkinzler 1. Mai 2007 14:58

Re: Post Command abschicken?
 
Muß Params heißen (habs oben korrigiert)

Sh4d0w 1. Mai 2007 15:30

Re: Post Command abschicken?
 
Dankeschön, werde ich bei Gelegenheit ausprobieren, muss jetzt weg.
Auf jeden Fall, danke für die Hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz