![]() |
UrlDownloadToFile - Problem
Hallo
Ich hab ein Problem mit der Funktion UrlDownloadToFile. Ich versuche, eine Google-Seite auszulesen:
Delphi-Quellcode:
Nur läd er mir die Datei nicht herunter. Bei normalen .php oder .html usw.-Dateien ( :zwinker: ) geht es :gruebel:
UrlDownloadToFile(nil,PChar('http://www.google.de/search?hl=de&q=Delphi'),PChar('C:\google.html'),0,nil);
Ich habe schon überlegt, Indy zu benutzen. Das will ich aber nicht, das Programm wird dann imer so groß. Zur Not mach ich das natürlich, aber erstmal suche ich die Lösung dafür. Kennwot die irgendwer? Blast! Onz :hi: |
Re: UrlDownloadToFile - Problem
|
Re: UrlDownloadToFile - Problem
Hallo
Welchen Use brauche ich für NmHTTP? Blast! |
Re: UrlDownloadToFile - Problem
Ach, noch was:
Ich würde gerne auf den Einsatz eine Komponente verzichten. |
Re: UrlDownloadToFile - Problem
Du brauchst die Fastnet Komponenten. Bei D5 waren sie noch als Internet-Komponeneten dabei. Es gibt aber die gleiche Komponenete auch von den Indys.
|
Re: UrlDownloadToFile - Problem
Wie gesagt, ich würde gerne auf den Einsatz von Komponenten verzichten. Gibt es denn sonst keine Lösung?
|
Re: UrlDownloadToFile - Problem
Es wird wohl nicht gehen, weil diu keine direkte Datei angegeben hast, sondern nur ein Script mit Prametern aufgerufen hast.
|
Re: UrlDownloadToFile - Problem
Also wohl oder übel doch Indy.... :|
|
Re: UrlDownloadToFile - Problem
Moin Onz,
Du kannst Dir ja dann in den Sourcen der Indys ansehen wie die es machen, und damit ermitteln welchen APIs usw. Du brauchst. |
Re: UrlDownloadToFile - Problem
Hallo
Ich schau mal... :cyclops: |
Re: UrlDownloadToFile - Problem
Oder du implementierst den GET-Aufruf selber mit einem normalen ClientSocket (bzw. mit der Socket-API).
|
Re: UrlDownloadToFile - Problem
Naja, dann werde ich es wohl mit Indy machen :) Außer irgendwer findet noch ein Lösung... :gruebel:
|
Re: UrlDownloadToFile - Problem
Du suchst dir das RFC für HTTP raus, erstellst eine TCP-Verbindung zum Server und sendest zunächst die Header-Daten. Dann führst du einen GET-Befehl aus, in dem die angeforderte Seite steht, anschließend speicherst du das, was du empfängst, in einer Datei.
Ist natürlich komplizierter als eine fertige Lösung, zumal du dich zusätzlich erst noch mit dem HTTP-Protokoll vertraut machen musst (sofern du das nicht schon vorher wusstest). |
Re: UrlDownloadToFile - Problem
Ok, ich hab das ganze mal versucht. Aber ich bekomme keine Antwort. Was mache ich falsch?
(Ich habe eine Variable Client vom Typ TClientSocket)
Delphi-Quellcode:
Onz, :wiejetzt:
procedure TForm1.FormCreate(Sender: TObject);
begin Client:=TCLientSocket.Create(Form1); Client.OnConnect:=OnSocketConnect; Client.OnError:=OnSocketError; Client.OnDisconnect:=OnSocketDisconnect; Client.OnRead:=OnSocketRead; Client.Port:=80; Client.Host:='google.de'; Client.Open; end; procedure TForm1.OnSocketConnect(Sender: TObject; Socket: TCustomWinSocket); begin showmessage('Erfolgreich verbunden'); end; procedure TForm1.OnSocketDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin showmessage('Verbindung wurde getrennt'); end; procedure TForm1.OnSocketRead(Sender: TObject; Socket: TCustomWinSocket); begin showmessage('Folgender Text wurde empfangen'); showmessage(Socket.ReceiveText); end; procedure TForm1.Button1Click(Sender: TObject); begin showmessage('GET /index.html HTTP/1.1'+#13#10+'Host: google.de'); Client.Socket.SendText('GET /index.html HTTP/1.1'+#13#10+'Host: google.de'); end; procedure TForm1.OnSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin showmessage('Ein Fehler ist aufgetreten'); end; procedure TForm1.Button2Click(Sender: TObject); begin if Client.Active then showmessage('Client ist aktiv'); end; |
Re: UrlDownloadToFile - Problem
Ich kenn mich leider nicht genug mit dem HTTP-Protokoll aus, um dir das zu sagen, abber ich kann dir folgenden Tipp geben:
Besorg dir ![]() |
Re: UrlDownloadToFile - Problem
Hmm...Putty geht bei mir komsicherweise nicht. Er verbindet nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 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