Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Datei mittels TRestHttp herunterladen + Events

  Alt 10. Apr 2022, 14:52
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?

Geändert von DieDolly (10. Apr 2022 um 14:59 Uhr)
  Mit Zitat antworten Zitat