TsgcHTTP3Server › Metody › SendResponse

SendResponse Metoda

Wysyła odpowiedź HTTP/3 (ramki HEADERS i DATA) w strumieniu żądania.

Składnia

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

Parametry

NazwaTypOpis
aQUICConnconst TsgcQUICServerConnectionPołączenie QUIC, do którego zapisywana jest odpowiedź.
aStreamIdInt64Identyfikator strumienia żądania, do którego należy odpowiedź.
aResponseconst TsgcHTTP3ResponseOdpowiedź do wysłania. Przed wywołaniem ustaw StatusCode, ContentType, opcjonalne Headers i treść Data.

Uwagi

SendResponse koduje nagłówki odpowiedzi za pomocą QPACK do ramki HEADERS, dołącza ramkę DATA, gdy odpowiedź ma treść, i zapisuje obie do strumienia żądania przez QUIC. Kod statusu jest wysyłany w pseudonagłówku :status, a nagłówek content-length jest dodawany automatycznie, gdy treść jest obecna.

W normalnym przepływie żądań nie trzeba wywoływać SendResponse: serwer tworzy TsgcHTTP3Response (z domyślnym StatusCode 200), uruchamia OnH3Request, aby aplikacja mogła go wypełnić, a następnie wysyła go automatycznie. SendResponse jest dostępny w zaawansowanych scenariuszach, gdzie odpowiedź musi być wygenerowana poza tym przepływem, i jest również używany wewnętrznie przez SendPush.

Przykład


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;

Powrót do metod