![]() |
HTML-Datei von Server abrufen und lokal Speichern
Hallo,
ich bin absoluter Delphi Newbie und habe folgendes Problem: Ich möchte eine HTML-Datei von einem Server abrufen und diese lokal abspeichern. Die Verbindung zum Server findet über einen bestimmten Port statt. Kann mir jemand weiterhelfen? |
Re: HTML-Datei von Server abrufen und lokal Speichern
morgen
einer Datei vom Server abrufen (ohne FTP, nur wie sie der Browser och azeigt) mit URlDownloadToFile (uses URLMon). fcg |
Re: HTML-Datei von Server abrufen und lokal Speichern
Zitat:
![]() |
Re: HTML-Datei von Server abrufen und lokal Speichern
Delphi-Quellcode:
So ungefähr sollte das funktionieren ;)
procedure TForm1.Button1Click(Sender: TObject);
var FileStream: TFileStream; begin FileStream := TFileStream.Create('C:/test.html', fmCreate); try IdHTTP1.Get('http://www.server.com/test.html', FileStream); finally FileStream.Free; end; end; |
Re: HTML-Datei von Server abrufen und lokal Speichern
Wow das ging ja schnell!!!
Vielen Dank für die Antworten [edit=Sharky]Doppelposting gelöscht. Mfg, Sharky[/edit] |
Re: HTML-Datei von Server abrufen und lokal Speichern
Ok das ganze funktioniert soweit. :-D
Allerdings wird das HTTP-Protokoll gar nicht für die Datenübertragung verwendet. Hab mir das ganze mal mit dem Ethereal Netzwerkanalysator angeschaut. Die Datenübertragung läuft nur über das TCP-Protokoll ab. Es muss also eine TCP-Verbindung mit einem bestimmten Port aufgebaut werden und die Daten downgeloaded werden. Kann mir jemand helfen? |
Re: HTML-Datei von Server abrufen und lokal Speichern
Hai netjoe,
HTTP wird standard mässig über Port 80 des TCP-Protokolles abgewickelt. |
Re: HTML-Datei von Server abrufen und lokal Speichern
Ähm, HTTP baut auf TCP auf, soviel ich weiß ;)
Ein HTTP-Server läuft meist auf Port 80 von dem du dann Webseiten runterladen kannst! |
Re: HTML-Datei von Server abrufen und lokal Speichern
Ja, das ist mir schon klar aber die gesamte Kommunikation läuft nur über TCP ab,
oder sehe ich das falsch? Ich gebe im IE-Browser einer URL ein und einen bestimmten port: z.B. ![]() der Browser zeigt mir dann die Daten die dort liegen. Das ganze soll aber nicht über den Browser laufen sondern durch ein eigenstständiges Delphi Programm. |
Re: HTML-Datei von Server abrufen und lokal Speichern
Und was ist dabei jetzt das Problem?
|
Re: HTML-Datei von Server abrufen und lokal Speichern
Das Problem ist das ich das HTTP-Protokoll, auf dem der IdHTTP aufbaut wahrscheinlich nicht verwenden kann.
Der folgende Code funktioniert nicht:
Delphi-Quellcode:
Hoffentlich langweile ich dich nicht mit meinen Fragen ...
procedure TForm1.Button1Click(Sender: TObject);
var FileStream: TFileStream; begin FileStream := TFileStream.Create('C:/test.html', fmCreate); try IdHTTP1.Get('http://www.sriptroute.org:3967', FileStream); finally FileStream.Free; end; end; |
Re: HTML-Datei von Server abrufen und lokal Speichern
Probiers mal so:
Delphi-Quellcode:
IdHTTP1.Port := 3967;
|
Re: HTML-Datei von Server abrufen und lokal Speichern
Hai netjoe,
es gibt "kein" HTTP-Protokoll. Die kommunikation mit WEB-Server läuft immer über TCP. |
Re: HTML-Datei von Server abrufen und lokal Speichern
Die Zeile
Delphi-Quellcode:
bringt leider auch keine Verbesserung.
IdHTTP1.Port := 3967;
Ich verzweifel bald ... :pale: Es muss doch eine Lösung geben ... |
Re: HTML-Datei von Server abrufen und lokal Speichern
Zitat:
http heisst "hyper-text-transfer-protocol" und ist ergo tatsächlich ein Protokoll :wink: TCP/UDP liegt nur in einer tieferen OSI/ISO-Schicht.
Code:
Diese Routine sollte funktionieren, wenn die Zeile "http://www.sriptroute.org:3967"
procedure TForm1.Button1Click(Sender: TObject);
var FileStream: TFileStream; begin FileStream := TFileStream.Create('C:/test.html', fmCreate); try IdHTTP1.Get('http://www.sriptroute.org:3967', FileStream); finally FileStream.Free; end; end; in einem Browser (z.B. IE) tatsächlich ein Ergebnis liefert. Wenn dem so ist, horcht auf der Maschine ![]() ein Web-Server (z.B. Apache, IIS etc.) und liefert auf Web-Anfragen auch "Web-Antworten". Sollte auf diesem Port aber ein anderes Programm lauschen, das eben nicht das Web-Protokoll (HTTP) "spricht", wird der Versuch mit idHTTP als Zugriffskomponente immer fehlschlagen. Eine "nativere" Möglichkeit ist es, mit der idTCPClient-Komponente zum Server zu verbinden und gucken was dieser "ausspuckt"... @netjoe: Ist der Server denn du abrufen willst öffentlich erreichbar? dann könnte man ja mal gucken, ob tatsächlich ein Web-Server auf diesem Port horcht... luwo |
Re: HTML-Datei von Server abrufen und lokal Speichern
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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