TsgcHTTP3Server › Eventos › OnH3Request

OnH3Request Evento

Se activa cuando se recibe una solicitud HTTP/3 completa para que la aplicación pueda rellenar la respuesta.

Sintaxis

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

Valor Predeterminado

—

Parámetros

NombreTipoDescripción
aConnectionconst TsgcQUICServerConnectionConexión QUIC por la que llegó la solicitud (expone PeerIP, PeerPort y el estado de la conexión).
aRequestconst TsgcHTTP3RequestSolicitud recibida: Method, Path, Host, Scheme, Headers y el cuerpo Data.
aResponseconst TsgcHTTP3ResponseRespuesta que se debe rellenar: establezca StatusCode, ContentType, las Headers opcionales y el cuerpo Data.

Observaciones

OnH3Request se genera una vez que el servidor ha recibido una solicitud HTTP/3 completa (las cabeceras de la solicitud, más el cuerpo para los métodos que lo llevan, como POST, PUT y PATCH). El servidor crea el objeto aResponse antes de activar el evento y preestablece su StatusCode en 200, por lo que un controlador que solo necesita devolver un 200 vacío puede dejarlo sin tocar. Rellene aResponse.StatusCode, aResponse.ContentType, aResponse.Headers y aResponse.Data según sea necesario; cuando el controlador retorna, el servidor codifica las cabeceras con QPACK y envía la respuesta en el stream de solicitud automáticamente. No es necesario llamar a SendResponse dentro de este evento. Inspeccione aRequest.Path y aRequest.Method para enrutar la solicitud.

Ejemplo


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;

Volver a Eventos