TsgcHTTP3Server › Événements › OnH3Request
Se déclenche lorsqu'une requête HTTP/3 complète est reçue afin que l'application puisse remplir la réponse.
property OnH3Request: TsgcHTTP3RequestEvent;
// TsgcHTTP3RequestEvent = procedure(Sender: TObject; const aConnection: TsgcQUICServerConnection; const aRequest: TsgcHTTP3Request; const aResponse: TsgcHTTP3Response) of object
—
| Nom | Type | Description |
|---|---|---|
aConnection | const TsgcQUICServerConnection | Connexion QUIC sur laquelle la requête est arrivée (expose PeerIP, PeerPort et l'état de la connexion). |
aRequest | const TsgcHTTP3Request | Requête reçue : Method, Path, Host, Scheme, Headers et le corps Data. |
aResponse | const TsgcHTTP3Response | Réponse à remplir : définissez StatusCode, ContentType, les Headers optionnels et le corps Data. |
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.
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;