TsgcHTTP3Server › Métodos › SendResponse
Envía una respuesta HTTP/3 (frames HEADERS y DATA) en un stream de solicitud.
procedure SendResponse(const aQUICConn: TsgcQUICServerConnection; aStreamId: Int64; const aResponse: TsgcHTTP3Response);
| Nombre | Tipo | Descripción |
|---|---|---|
aQUICConn | const TsgcQUICServerConnection | Conexión QUIC en la que se escribe la respuesta. |
aStreamId | Int64 | Identificador del stream de solicitud al que pertenece la respuesta. |
aResponse | const TsgcHTTP3Response | Respuesta a enviar. Establezca StatusCode, ContentType, los Headers opcionales y el cuerpo Data antes de llamar. |
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.
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;