AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wie mit Indy, HTTP, POST eine Datei Downloaden ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie mit Indy, HTTP, POST eine Datei Downloaden ?

Ein Thema von Blubbazisch · begonnen am 1. Mär 2006 · letzter Beitrag vom 3. Mär 2006
Antwort Antwort
Blubbazisch

Registriert seit: 3. Feb 2006
16 Beiträge
 
#1

Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 1. Mär 2006, 14:45
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
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 2. Mär 2006, 10:57
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
  Mit Zitat antworten Zitat
Blubbazisch

Registriert seit: 3. Feb 2006
16 Beiträge
 
#3

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 2. Mär 2006, 11:54
Hi,

wäre es möglich dafür einen Beispielcode zu bekommen ?

Ich habe noch nicht mit Streams gearbeitet.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 2. Mär 2006, 13:00
Klar... Ganz einfach

Delphi-Quellcode:
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;
mfg Frank
  Mit Zitat antworten Zitat
Blubbazisch

Registriert seit: 3. Feb 2006
16 Beiträge
 
#5

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 3. Mär 2006, 10:56
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.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 3. Mär 2006, 10:59
Ä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.
  Mit Zitat antworten Zitat
Blubbazisch

Registriert seit: 3. Feb 2006
16 Beiträge
 
#7

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 3. Mär 2006, 11:03
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.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 3. Mär 2006, 11:08
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;
  Mit Zitat antworten Zitat
Blubbazisch

Registriert seit: 3. Feb 2006
16 Beiträge
 
#9

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 3. Mär 2006, 11:21
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:
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;
Er müsste ja theoretisch, alles das was wieder kommt in die Datei rein schreiben ?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Wie mit Indy, HTTP, POST eine Datei Downloaden ?

  Alt 3. Mär 2006, 11:27
Arg sorry, mein Fehler.

Es muss so heißen:

idhttp1.Post('http://www.preis-o-mat.de/search.php', {!}Data, MyStream); Hatte das Data vergessen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 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