TsgcHTTP3Server › Events › OnH3Request

OnH3Request Gebeurtenis

Wordt geactiveerd wanneer een volledig HTTP/3-verzoek is ontvangen zodat de applicatie het antwoord kan invullen.

Syntaxis

property OnH3Request: TsgcHTTP3RequestEvent;
// TsgcHTTP3RequestEvent = procedure(Sender: TObject; const aConnection: TsgcQUICServerConnection; const aRequest: TsgcHTTP3Request; const aResponse: TsgcHTTP3Response) of object

Standaardwaarde

—

Parameters

NaamTypeBeschrijving
aConnectionconst TsgcQUICServerConnectionQUIC-verbinding waarop de aanvraag is aangekomen (geeft PeerIP, PeerPort en verbindingsstatus weer).
aRequestconst TsgcHTTP3RequestOntvangen verzoek: Method, Path, Host, Scheme, Headers en de Data-body.
aResponseconst TsgcHTTP3ResponseAntwoord in te vullen: stel StatusCode, ContentType, optionele Headers en de Data-berichttekst in.

Opmerkingen

OnH3Request wordt geactiveerd zodra de server een volledig HTTP/3-verzoek heeft ontvangen (verzoekheaders, plus de body voor methoden die er een bevatten, zoals POST, PUT en PATCH). De server maakt het aResponse-object aan vóór het activeren van het event en stelt de StatusCode vooraf in op 200, zodat een handler die alleen een lege 200 moet retourneren dit ongewijzigd kan laten. Vul aResponse.StatusCode, aResponse.ContentType, aResponse.Headers en aResponse.Data naar behoefte in; wanneer de handler terugkeert, QPACK-codeert de server automatisch de headers en verstuurt het antwoord op de verzoekstream. Het is niet nodig om SendResponse vanuit dit event aan te roepen. Inspecteer aRequest.Path en aRequest.Method om het verzoek te routeren.

Voorbeeld


procedure OnH3RequestEvent(Sender: TObject; const aConnection:
    TsgcQUICServerConnection; const aRequest: TsgcHTTP3Request;
    const aResponse: TsgcHTTP3Response);
begin
  if aRequest.Path = '/hello' then
  begin
    aResponse.StatusCode := 200;
    aResponse.ContentType := 'text/plain';
    aResponse.Data := TEncoding.UTF8.GetBytes('Hello HTTP/3');
  end
  else
    aResponse.StatusCode := 404;
end;

Terug naar Events