Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Tutorial: http-download (https://www.delphipraxis.net/18257-tutorial-http-download.html)

yankee 16. Mär 2004 16:02


Tutorial: http-download
 
Ich würde gerne ein total einfaches Programm schreiben, welches nichts weiter macht, als eine Datei per HTTP von einem Webserver zu downloaden.
Da ich aber noch nie ein Programm geschrieben habe, welches Daten übers Netz überträgt, habe ich noch nichtmal eine Idee, wie ich ansetzen sollte.
Lange Rede, kurzer Sinn: Kennt jemand ein gutes und einfaches Tutorial für sowas?

Luckie 16. Mär 2004 16:10

Re: Tutorial: http-download
 
Entweder mit einer HTTP Komponente (Indy, Fastnet) oder wenn es nur das ist ganz einfach mit UrlDownloadToFileUrlDownloadToFile.

huberlix 24. Mär 2004 09:38

Re: Tutorial: http-download
 
Oder, wenn du die Seite als Quelltext haben willst: Das folgende hab ich aus "Easy Delphi Helper" kopiert:

Zitat:

Den Inhalt einer HTML-Datei aus dem Internet downloaden


Wie kann ich eine HTML-Datei aus dem Internet downloaden und in einem Memofeld anzeigen.

Diese Lösung habe ich bei www.delphi3000.com gefunden. Damit die Funktion funktioniert muss noch eine Unit eingebunden werden:

uses WinInet;


Function GetHTML(AUrl: string): string;
var
databuffer : array[0..4095] of char;
ResStr : string;
hSession, hfile, hRequest: hInternet;
dwindex,dwcodelen,datalen,dwread,dwNumber: cardinal;
dwcode : array[1..20] of char;
res : pchar;
Str : pchar;
begin
ResStr:='';
if pos('http://',lowercase(AUrl))=0 then
AUrl:='http://'+AUrl;
hSession:=InternetOpen('InetURL:/1.0',
INTERNET_OPEN_TYPE_PRECONFIG,
nil,
nil,
0);
if assigned(hsession) then
begin
hfile:=InternetOpenUrl(
hsession,
pchar(AUrl),
nil,
0,
INTERNET_FLAG_RELOAD,
0);
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile,
HTTP_QUERY_STATUS_CODE,
@dwcode,
dwcodeLen,
dwIndex);
res := pchar(@dwcode);
dwNumber := sizeof(databuffer)-1;
if (res ='200') or (res ='302') then
begin
while (InternetReadfile(hfile,
@databuffer,
dwNumber,
DwRead)) do
begin
if dwRead =0 then
break;
databuffer[dwread]:=#0;
Str := pchar(@databuffer);
resStr := resStr + Str;
end;
end
else
ResStr := 'Status:'+res;
if assigned(hfile) then
InternetCloseHandle(hfile);
end;
InternetCloseHandle(hsession);
Result := resStr;
end;


So erfolgt der Aufruf:

procedure TForm1.MultilineButton1Click(Sender: TObject);
begin
Memo1.Text:=GetHTML('http://localhost/index.htm');
end;

--
Homepage: http://www.delphi3000.com

momobaxxtor 24. Mär 2004 18:13

Re: Tutorial: http-download
 
da hött ich auch ne frage zu, hab zwar schonmal ein ooder zwei proggys geschrieben, die mir immer eine proxyzip gezogen haben, aber was mich da mal interessieren würde wäre, wie man files mit mehreren threads saugen kann (bei der proxyliste nich ganz interessant weil kleiner als 500kb), wie z.b. bei flashget oder getright. muss ja net ganz so ausgeklügelt sein, aber einfach mal um zu sehen wie man sowas realisieren kann. da wird die datei ja in sagen wir mal 5 abschnitten gesogen und jeder thread fängt ab einem anderen byte an zu ziehen. wenn jemand was darüber weis bidde schreiben, ist echt interessant.
mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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