TsgcWebSocketServer_HTTPAPI › Zdarzenia › OnHTTPRequest
Wywoływane, gdy serwer odbiera żądanie HTTP, dzięki czemu aplikacja może zbudować odpowiedź.
property OnHTTPRequest: TsgcWSHTTPAPIRequestEvent;
// TsgcWSHTTPAPIRequestEvent = procedure(aConnection: TsgcWSConnection_HTTPAPI; const aRequestInfo: THttpServerRequest; var aResponseInfo: THttpServerResponse) of object
—
OnHTTPRequest jest głównym punktem wejścia dla każdego żądania HTTP dostarczanego do serwera przez HTTP.SYS (GET, POST, PUT, DELETE, HEAD...). Parametr aRequestInfo udostępnia zdekodowane żądanie (Document, Method, Headers, ContentType, Content, QueryParams, Cookies, ContentLength, AuthExists/AuthUsername/AuthPassword, Stream), a aResponseInfo zbiera odpowiedź, którą aplikacja chce wysłać: należy ustawić ResponseNo, ContentText (lub ContentStream / FileName dla odpowiedzi binarnych/plikowych), ContentType, CustomHeaders, Date/Expires/LastModified i CacheControl według potrzeb. Pozostawienie aResponseInfo bez zmian spowoduje zwrócenie domyślnego HTTP 200; przypisanie ResponseNo wartości 404/500/... sygnalizuje warunek błędu. To zdarzenie nie jest wywoływane dla żądań aktualizacji WebSocket; te są kierowane przez OnConnect / OnHandshake.
procedure OnHTTPRequest(aConnection: TsgcWSConnection_HTTPAPI;
const aRequestInfo: THttpServerRequest;
var aResponseInfo: THttpServerResponse);
begin
if aRequestInfo.Method = 'GET' then
begin
if aRequestInfo.Document = '/test.html' then
begin
aResponseInfo.ResponseNo := 200;
aResponseInfo.ContentText := 'OK';
aResponseInfo.ContentType := 'text/html; charset=UTF-8';
end
else
aResponseInfo.ResponseNo := 404;
end
else
aResponseInfo.ResponseNo := 500;
end;