TsgcHTTP2Client › Eventi › OnHTTP2ResponseFragment
Si attiva per ogni frammento di risposta in streaming quando FragmentedData consegna i dati man mano che arrivano.
property OnHTTP2ResponseFragment: TsgcHTTP2ClientResponseFragmentEvent;
// TsgcHTTP2ClientResponseFragmentEvent = procedure(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const Request: TsgcHTTP2RequestProperty; const Fragment: TsgcHTTP2ResponseFragmentProperty) of object
—
OnHTTP2ResponseFragment viene generato ogni volta che si riceve un pacchetto di risposta parziale, in modo che lo stream possa essere elaborato non appena arrivano i byte invece di attendere l'intero payload. Viene tipicamente utilizzato con stream HTTP/2 a lunga durata o suddivisi in chunk (ad esempio stream di eventi o endpoint di tipo clockstream) e si abilita impostando FragmentedData su h2fdAll (genera anche OnHTTP2Response quando arriva l'ultimo pacchetto) oppure h2fdOnlyFragmented (viene inviato solo questo evento). Il parametro Fragment espone il payload parziale tramite Data, DataString e DataUTF8; il parametro Request identifica la richiesta di origine.
oClient := TsgcHTTP2Client.Create(nil);
oClient.OnHTTP2ResponseFragment := OnHTTP2ResponseFragmentEvent;
oClient.Get('https://http2.golang.org/clockstream');
procedure OnHTTP2ResponseFragmentEvent(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient;
const Request: TsgcHTTP2RequestProperty; const Fragment: TsgcHTTP2ResponseFragmentProperty);
begin
ShowMessage(Fragment.DataString);
end;