TsgcHTTP2Client | Téléchargement de fichier HTTP/2

Lorsque le client demande un fichier au serveur, utilisez l'événement OnHTTP2Response pour charger la réponse du flux.

 

Téléchargements de fichiers volumineux

Lors du téléchargement de fichiers volumineux (plusieurs centaines de Mo ou plus), définissez HTTP2Options.ReadTimeout sur 0 (aucun délai d'expiration) pour garantir que le transfert se termine sans être interrompu par le délai d'expiration par défaut de 60 secondes :

 


oClient := TsgcHTTP2Client.Create(nil);
oClient.HTTP2Options.ReadTimeout := 0; // no timeout for large files
oClient.Get('https://server/largefile', oStream);

 


oClient := TsgcHTTP2Client.Create(nil);
oClient.OnHTTP2Response := OnHTTP2ResponseEvent;
oClient.Get('https://http2.golang.org/file/gopher.png');
...
procedure OnHTTP2ResponseEventEvent(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; 
  const Request: TsgcHTTP2RequestProperty; const Response: TsgcHTTP2ResponseProperty)
begin
  oStream := TFileStream.Create('file', fmOpenWrite or fmCreate);
  Try
    oStream.CopyFrom(Response.Data, Response.Data.Size);
  Finally
    oStream.Free;
  End;
end;