TsgcHTTP3Server › Metodi › SendResponse

SendResponse Metodo

Invia una risposta HTTP/3 (frame HEADERS e DATA) su uno stream di richiesta.

Sintassi

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

Parametri

NomeTipoDescrizione
aQUICConnconst TsgcQUICServerConnectionConnessione QUIC su cui viene scritta la risposta.
aStreamIdInt64Identificatore dello stream di richiesta a cui appartiene la risposta.
aResponseconst TsgcHTTP3ResponseRisposta da inviare. Impostare StatusCode, ContentType, gli Headers facoltativi e il corpo Data prima della chiamata.

Note

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.

Esempio


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;

Torna ai Metodi