TsgcWebSocketServer_HTTPAPIZdarzenia › OnHTTPRequest

OnHTTPRequest Zdarzenie

Wywoływane, gdy serwer odbiera żądanie HTTP, dzięki czemu aplikacja może zbudować odpowiedź.

Składnia

property OnHTTPRequest: TsgcWSHTTPAPIRequestEvent;
// TsgcWSHTTPAPIRequestEvent = procedure(aConnection: TsgcWSConnection_HTTPAPI; const aRequestInfo: THttpServerRequest; var aResponseInfo: THttpServerResponse) of object

Wartość domyślna

Uwagi

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.

Przykład


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;

Powrót do Zdarzeń