Home » Tipps & Tricks » Netzwerk/Internet » Internet » Inhalt einer HTML-Datei aus dem Internet downloaden
Inhalt einer HTML-Datei aus dem Internet downloaden
Folgende Routine lädt mit Boardmitteln eine HTML-Datei über das HTTP-Protokoll und gibt den Inhalt als Result zurück:
uses WinInet; Function GetHTML(AUrl: string): string; var databuffer : array[0..4095] of char; ResStr : string; hSession, hfile: hInternet; dwindex,dwcodelen,dwread,dwNumber: cardinal; dwcode : array[1..20] of char; res : pchar; Str : pchar; begin ResStr:=''; Result:=''; 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 Try hfile:=InternetOpenUrl( hsession, pchar(AUrl), nil, 0, INTERNET_FLAG_RELOAD, 0); if assigned(hfile) then Try 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)) AND (dwRead 0) do begin databuffer[dwread]:=#0; Str := pchar(@databuffer); resStr := resStr + Str; Application.ProcessMessages; end; end else ResStr := 'Status:'+res; Finally InternetCloseHandle(hfile); End; Finally InternetCloseHandle(hsession); End; Result := ResStr; end;
Der Aufruf erfolgt so:
procedure TForm1.MultilineButton1Click(Sender: TObject); begin Memo1.Text:=GetHTML('http://www.delphi-treff.de'); end;