TsgcHTTP3Server › Metodi › SendResponse
Invia una risposta HTTP/3 (frame HEADERS e DATA) su uno stream di richiesta.
procedure SendResponse(const aQUICConn: TsgcQUICServerConnection; aStreamId: Int64; const aResponse: TsgcHTTP3Response);
| Nome | Tipo | Descrizione |
|---|---|---|
aQUICConn | const TsgcQUICServerConnection | Connessione QUIC su cui viene scritta la risposta. |
aStreamId | Int64 | Identificatore dello stream di richiesta a cui appartiene la risposta. |
aResponse | const TsgcHTTP3Response | Risposta da inviare. Impostare StatusCode, ContentType, gli Headers facoltativi e il corpo Data prima della chiamata. |
SendResponse codifica con QPACK gli header della risposta in un frame HEADERS, aggiunge un frame DATA quando la risposta ha un corpo e scrive entrambi sullo stream di richiesta tramite QUIC. Il codice di stato viene inviato nello pseudo-header :status e un header content-length viene aggiunto automaticamente quando è presente un corpo.
Nel normale flusso di richieste non è necessario chiamare SendResponse: il server crea un TsgcHTTP3Response (con StatusCode predefinito a 200), genera OnH3Request in modo che l'applicazione possa riempirlo, quindi lo invia automaticamente. SendResponse è esposto per scenari avanzati in cui una risposta deve essere prodotta al di fuori di tale flusso, ed è utilizzato anche internamente da 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;