Die einfachste Variante, wenn man nur eine Datei herunterlädt (läuft bei mir in sowieso in einem Thread, daher geht auch die Fortschrittsanzeige und der direkte Aufruf von ohne get an TNetHTTPClient):
Delphi-Quellcode:
var httpClient: TNetHTTPClient;
ms:TStream;
begin
httpClient:=TNetHTTPClient.create(nil);
try
httpClient.OnAuthEvent:=NetHTTPClientAuthEvent;
httpClient.OnReceiveData:=NetHTTPClientReceiveData;
httpClient.ConnectionTimeout:=60000;
httpClient.ProxySettings := TProxySettings.Create(xxx,yyy);
ms:=TFileStream.Create(localFileName,fmCreate or fmOpenReadWrite);
try
httpClient.Get('https://'+remoteFileName,ms);
finally
ms.Free();
end;
finally
httpClient.free();
end;
procedure TForm.NetHTTPClientAuthEvent(const Sender: TObject; AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName, APassword: string; var AbortAuth: Boolean; var Persistence: TAuthPersistenceType);
begin
AUserName:=xxx;
APassword:=yyy;
end;
procedure TForm.NetHTTPClientReceiveData(const Sender: TObject; AContentLength, AReadCount: Int64; var Abort: Boolean);
begin
//todo: Fortschrittsanzeige
end;
Ob Du ein OnAuthEvent oder ProxySettings benötigst hängt an der jeweiligen Konfiguration, wahrscheinlich eher nein und man kommt natürlich auch ohne OnReceiveData aus).