TsgcHTTP3Server › Événements › OnH3Request

OnH3Request Événement

Se déclenche lorsqu'une requête HTTP/3 complète est reçue afin que l'application puisse remplir la réponse.

Syntaxe

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

Valeur par défaut

—

Paramètres

NomTypeDescription
aConnectionconst TsgcQUICServerConnectionConnexion QUIC sur laquelle la requête est arrivée (expose PeerIP, PeerPort et l'état de la connexion).
aRequestconst TsgcHTTP3RequestRequête reçue : Method, Path, Host, Scheme, Headers et le corps Data.
aResponseconst TsgcHTTP3ResponseRéponse à remplir : définissez StatusCode, ContentType, les Headers optionnels et le corps Data.

Remarques

OnH3Request est déclenché une fois que le serveur a reçu une requête HTTP/3 complète (en-têtes de requête, ainsi que le corps pour les méthodes qui en portent un tel que POST, PUT et PATCH). Le serveur crée l'objet aResponse avant de déclencher l'événement et prédéfinit son StatusCode à 200, de sorte qu'un gestionnaire qui n'a besoin que de retourner un 200 vide peut le laisser inchangé. Renseignez aResponse.StatusCode, aResponse.ContentType, aResponse.Headers et aResponse.Data selon les besoins ; lorsque le gestionnaire retourne, le serveur encode les en-têtes avec QPACK et envoie la réponse sur le flux de requête automatiquement. Il n'est pas nécessaire d'appeler SendResponse depuis cet événement. Inspectez aRequest.Path et aRequest.Method pour router la requête.

Exemple


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;

Retour aux événements