TsgcHTTP2Clientイベント › OnHTTP2ResponseFragment

OnHTTP2ResponseFragment イベント

FragmentedDataがデータを受信したときにストリーミングされる各レスポンスフラグメントに対して発火します。

構文

property OnHTTP2ResponseFragment: TsgcHTTP2ClientResponseFragmentEvent;
// TsgcHTTP2ClientResponseFragmentEvent = procedure(Sender: TObject; const Connection: TsgcHTTP2ConnectionClient; const Request: TsgcHTTP2RequestProperty; const Fragment: TsgcHTTP2ResponseFragmentProperty) of object

デフォルト値

解説

OnHTTP2ResponseFragment は、部分的なレスポンスパケットを受信するたびに発生します。これにより、ペイロード全体を待たずにバイトが届いた時点でストリームを処理できます。通常、長期またはチャンクされた HTTP/2 ストリーム(イベントストリームやクロックストリームスタイルのエンドポイントなど)で使用され、FragmentedData を h2fdAll(最後のパケットが到着したときに OnHTTP2Response も発生)または h2fdOnlyFragmented(このイベントのみがディスパッチ)に設定することで有効になります。Fragment パラメーターは Data、DataString、DataUTF8 を通じて部分的なペイロードを公開します。Request パラメーターは元のリクエストを識別します。

使用例


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;

イベントに戻る