Lorsque le client demande un fichier au serveur, utilisez l'événement OnHTTP2Response pour charger la réponse du flux.
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;