![]() |
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 |
Re: Post Command abschicken?
Kann mir denn keiner helfen??
|
Re: Post Command abschicken?
Suche doch mal nach INDY + Post
|
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"... |
Re: Post Command abschicken?
Hast du den INDY installiert? Wenn ja welche Version?
|
Re: Post Command abschicken?
Zitat:
"Unit IdMultipartFormData wurde mit einer unterschiedlichen Version von IdResourceStrings.RSMFDIvalidObjectType compiliert" :?: |
Re: Post Command abschicken?
Laß mal INDY neu erzeugen
|
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? |
Re: Post Command abschicken?
Zitat:
Den Quelltext lade ich mit der idHTTP... |
Re: Post Command abschicken?
Zitat:
|
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:
ab.
IdHttp1.Get(....)
Genauso gibt es aber auch
Delphi-Quellcode:
womit du eben daten posten kannst.
IdHttp1.Post(....)
|
Re: Post Command abschicken?
Lösche mal alle Dateien der alten Version und lasse die Packages der neuen neu erzeugen
|
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! |
Re: Post Command abschicken?
Der fEhler könnte aber trotzdem auftreten, weil es mir scheint, daß Dateien von verschidenen INDY-Versionen gemischt vorliegen.
|
Re: Post Command abschicken?
Zitat:
|
Re: Post Command abschicken?
|
Re: Post Command abschicken?
Also ich habe diesen Quelltext der Seite:
Zitat:
Delphi-Quellcode:
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.
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; |
Re: Post Command abschicken?
Du mußt auch die Input-Felder Posten (s, c) und nicht den Button.
|
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:
Ist der Ansatz denn richtig?
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; |
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);
|
Re: Post Command abschicken?
Zitat:
|
Re: Post Command abschicken?
Das Editfeld hat auch den Name c und s die Session
|
Re: Post Command abschicken?
Dann muss das so heißen?
Parameter.WriteString('c='+Edit3.Text); |
Re: Post Command abschicken?
Probiers doch einfach aus :roll:
|
Re: Post Command abschicken?
Ja und den Parameter s nicht vergessen
|
Re: Post Command abschicken?
Wenn ich jetzt 'c='+Edit3.Text hab, wo muss denn dann s hin? :gruebel:
|
Re: Post Command abschicken?
Als weiterer Parameter
|
Re: Post Command abschicken?
Zitat:
|
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); |
Re: Post Command abschicken?
Ich bekomme "Undefinierter Bezeichner: lparams"...
|
Re: Post Command abschicken?
Muß Params heißen (habs oben korrigiert)
|
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 16:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz