TsgcHTTP3Server › Metody › SendResponse
Wysyła odpowiedź HTTP/3 (ramki HEADERS i DATA) w strumieniu żądania.
procedure SendResponse(const aQUICConn: TsgcQUICServerConnection; aStreamId: Int64; const aResponse: TsgcHTTP3Response);
| Nazwa | Typ | Opis |
|---|---|---|
aQUICConn | const TsgcQUICServerConnection | Połączenie QUIC, do którego zapisywana jest odpowiedź. |
aStreamId | Int64 | Identyfikator strumienia żądania, do którego należy odpowiedź. |
aResponse | const TsgcHTTP3Response | Odpowiedź do wysłania. Przed wywołaniem ustaw StatusCode, ContentType, opcjonalne Headers i treść Data. |
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.
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;