TsgcHTTP2Client | HTTP/2 Download File

Quando o cliente requisita um arquivo do servidor, utilize o evento OnHTTP2Response para carregar a resposta em stream.

 

Downloads de Arquivos Grandes

Ao baixar arquivos grandes (centenas de MB ou mais), defina HTTP2Options.ReadTimeout como 0 (sem timeout) para garantir que a transferência seja concluída sem ser interrompida pelo timeout padrão de 60 segundos:

 


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;