TsgcHTTP2Client | HTTP/2 Download File

İstemci sunucudan bir dosya talep ettiğinde, stream yanıtını yüklemek için OnHTTP2Response olayını kullanın.

 

Büyük Dosya İndirmeleri

Büyük dosyaları (yüzlerce MB veya daha fazla) indirirken, aktarımın varsayılan 60 saniyelik zaman aşımı tarafından kesintiye uğramadan tamamlandığından emin olmak için HTTP2Options.ReadTimeout değerini 0 (zaman aşımı yok) olarak ayarlayın:

 


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;