TsgcHTTP3Server › Métodos › SendResponse
Envia uma resposta HTTP/3 (frames HEADERS e DATA) em um stream de requisição.
procedure SendResponse(const aQUICConn: TsgcQUICServerConnection; aStreamId: Int64; const aResponse: TsgcHTTP3Response);
| Name | Type | Descrição |
|---|---|---|
aQUICConn | const TsgcQUICServerConnection | Conexão QUIC na qual a resposta é gravada. |
aStreamId | Int64 | Identificador do stream de requisição ao qual a resposta pertence. |
aResponse | const TsgcHTTP3Response | Resposta a enviar. Defina StatusCode, ContentType, Headers opcionais e o corpo Data antes de chamar. |
SendResponse codifica os cabeçalhos de resposta com QPACK em um frame HEADERS, anexa um frame DATA quando a resposta possui corpo e escreve ambos no stream de requisição via QUIC. O código de status é enviado no pseudo-cabeçalho :status e um cabeçalho content-length é adicionado automaticamente quando há um corpo presente.
No fluxo normal de requisição você não precisa chamar SendResponse: o servidor cria um TsgcHTTP3Response (com StatusCode padrão 200), dispara OnH3Request para que a aplicação possa preenchê-lo e o envia automaticamente. SendResponse está disponível para cenários avançados onde uma resposta deve ser produzida fora desse fluxo, e também é usado internamente por SendPush.
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;