TsgcHTTP3Server › Métodos › SendResponse

SendResponse Método

Envía una respuesta HTTP/3 (frames HEADERS y DATA) en un stream de solicitud.

Sintaxis

procedure SendResponse(const aQUICConn: TsgcQUICServerConnection; aStreamId: Int64; const aResponse: TsgcHTTP3Response);

Parámetros

NombreTipoDescripción
aQUICConnconst TsgcQUICServerConnectionConexión QUIC en la que se escribe la respuesta.
aStreamIdInt64Identificador del stream de solicitud al que pertenece la respuesta.
aResponseconst TsgcHTTP3ResponseRespuesta a enviar. Establezca StatusCode, ContentType, los Headers opcionales y el cuerpo Data antes de llamar.

Observaciones

SendResponse codifica con QPACK las cabeceras de respuesta en un frame HEADERS, añade un frame DATA cuando la respuesta tiene cuerpo y escribe ambos en el stream de solicitud sobre QUIC. El código de estado se envía en la pseudo-cabecera :status y se añade automáticamente una cabecera content-length cuando hay un cuerpo presente.

En el flujo normal de solicitudes no es necesario llamar a SendResponse: el servidor crea un TsgcHTTP3Response (con StatusCode con valor predeterminado 200), genera OnH3Request para que la aplicación pueda rellenarlo y, a continuación, lo envía automáticamente. SendResponse se expone para escenarios avanzados en los que una respuesta debe producirse fuera de ese flujo, y SendPush también lo usa internamente.

Ejemplo


oResponse := TsgcHTTP3Response.Create;
try
  oResponse.StatusCode := 200;
  oResponse.ContentType := 'text/plain';
  oResponse.Data := TEncoding.UTF8.GetBytes('Hello HTTP/3');
  oServer.SendResponse(aConnection, aStreamId, oResponse);
finally
  oResponse.Free;
end;

Volver a Métodos