![]() |
Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Hi Liebe DP User,
ich habe da ein Problem mit dem ich nicht so recht weiter komme. Alle Tutorials und Howto's die ich gefunden habe, beziehen sich auf das Posten von Dateien mit Indy. Ich nutze Indy 9 Das habe ich ausprobiert und Funktioniert auch wunderbar. Ich möchte aber keine Datei Posten (also senden) sondern ich möchte eine Datei zurück bekommen wenn ich was an den Server gepostet habe. Kann mir bitte jemand aufzeigen wie ich: Wenn ich einen Post mit Indy abgesetzt habe, und eine Datei wieder bekomme, diese speichere ? Für jeden Code-Schnipsel oder für jede Idee bin ich sehr Dankbar. Danke |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Schau Dir mal:
IDhttp procedure Get(AURL: string; const AResponseContent: TStream); overload; an... Diese Methode speichert Dir die Datei die Du als URL angibst in einem Stream ab. Frank :coder: |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Hi,
wäre es möglich dafür einen Beispielcode zu bekommen ? Ich habe noch nicht mit Streams gearbeitet. |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Klar... Ganz einfach
Delphi-Quellcode:
mfg Frank :coder:
procedure TForm1.Button1Click(Sender: TObject);
var MyStream : TFilestream; begin MyStream := TFilestream.Create('c:\Test.txt',fmCreate); // oder auch "c:\index.htm" idhttp1.Get('http://www.mydomain.de/index.htm',MyStream); MyStream.Free; end; |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Hi,
eigentlich würde ich das ganze gerne mit einem Post Befehl machen. Ich habe dazu auch einige Lösungsansätze hier im Board und im Internet gefunden. Ich markiere diesen Thread erstmal als erledigt bis ich das alles versucht habe umzusetzen. |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Ähm,
warum mit Post? Das ist sehr unlogisch. Mit Post kloppst du was ins Internet und mit Get holst du was raus, dass is ja das was du brauchst. |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Hi,
nein nicht ganz. Ich Poste zum Beispiel Benutzername und Passwort an eine Seite und bekomme dafür als Response eine Datei wieder. Mit der GET Methode kann ich kein "Formular Post" nachahmen. |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
OK, da haste auch wieder recht ;-)
Dann sollte das so funktionieren.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyStream : TFilestream; Data: TIdMultiPartFormDataStream; begin MyStream := TFilestream.Create('c:\Test.txt',fmCreate); Data := TIdMultiPartFormDataStream.Create; Data.AddFormField('name', 'Max Mustermann'); // Hier kannst du deine Formdaten einfügen Data.AddFormField('blubb', '><(((°>'); // ^^ ^^ ^^ Data.Position := 0; idhttp1.Post('http://www.mydomain.de/index.htm',MyStream); MyStream.Free; Data.Free; end; |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Hi,
gesagt getan. Delphi macht zwar eine Datei die sich Test.txt nennt. Schreibt da aber nix rein. Hier mein Code, ich Poste an meine eigene Seite wo ich weiss das ich da was wieder bekomme.
Delphi-Quellcode:
Er müsste ja theoretisch, alles das was wieder kommt in die Datei rein schreiben ?
var
MyStream : TFilestream; Data: TIdMultiPartFormDataStream; begin MyStream := TFilestream.Create('c:\Test.txt',fmCreate); Data := TIdMultiPartFormDataStream.Create; Data.AddFormField('q', 'test'); // Hier kannst du deine Formdaten einfügen Data.Position := 0; idhttp1.Post('http://www.preis-o-mat.de/search.php',MyStream); MyStream.Free; Data.Free; end; |
Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Arg sorry, mein Fehler.
Es muss so heißen:
Delphi-Quellcode:
Hatte das Data vergessen...
idhttp1.Post('http://www.preis-o-mat.de/search.php', {!}Data, MyStream);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 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