Nachdem ich heute alles von TIdHTTP zu TRESTHTTP umgeschrieben habe und wieder Kontakt zu meinem Server habe, steht eine nächste Sache an.
Ich lade Dateien mit den Indys runter und nutze dafür HTTPWorkBegin, HTTPWork und HTTPWorkEnd. Der Dateidownload selber sieht so aus
Delphi-Quellcode:
constructor THTTPFileDownload.Create(AOwner: TComponent);
begin
inherited;
FIOHndl := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
FIOHndl.SSLOptions.SSLVersions := [sslvTLSv1_2];
IOHandler := FIOHndl;
OnWork := HTTPWork;
OnWorkBegin := HTTPWorkBegin;
OnWorkEnd := HTTPWorkEnd;
end;
function THTTPFileDownload.DownloadFile(const aFileUrl: string; const aDestinationFile: string): Boolean;
var
LDestStream: TFileStream;
aPath: string;
begin
try
aPath := ExtractFilePath(aDestinationFile);
if aPath <> '' then
ForceDirectories(aPath);
LDestStream := TFileStream.Create(aDestinationFile, fmCreate);
try
Get(aFileUrl, LDestStream);
Result := ResponseCode = 200;
finally
FreeAndNil(LDestStream);
end;
except
Result := False;
end;
end;
Ich denke mit REST.HttpClient sollte das zu 99% gleich sein. Aber wie bekomme ich das mit den Events HTTPWorkBegin, HTTPWork und HTTPWorkEnd hin?
Noch ganz weg von
Indy bin ich aber danach auch noch nicht. Ich sende aus meinem Programm heraus E-Mails via
SMTP. Das kann Rest vermutlich überhaupt nicht, oder?