TsgcWebSocketHTTPServerEventos › OnCommandOther

OnCommandOther Event

Disparado quando o servidor HTTP recebe um método diferente de GET, POST ou HEAD (PUT, DELETE, OPTIONS, PATCH...).

Sintaxe

property OnCommandOther: TIdHTTPCommandEvent;
// TIdHTTPCommandEvent = procedure(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo) of object

Valor Padrão

Observações

OnCommandOther é gerado para métodos HTTP que não sejam GET, POST ou HEAD (PUT, DELETE, OPTIONS, PATCH, TRACE...). Inspecione ARequestInfo.Command para descobrir qual verbo foi utilizado e ARequestInfo.Document para a URI de destino; preencha AResponseInfo.ContentText/ContentStream, ContentType e ResponseNo, assim como em OnCommandGet. Tratar este evento é a forma usual de implementar endpoints REST que aceitam verbos além de GET/POST; utilize-o junto com OnBeforeCommand quando a requisição também precisar de triagem de autorização.

Exemplo


procedure OnCommandOther(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo;
  AResponseInfo: TIdHTTPResponseInfo);
begin
  if SameText(ARequestInfo.Command, 'OPTIONS') then
  begin
    AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
    AResponseInfo.ResponseNo := 204;
  end;
end;

Voltar para Eventos