TsgcWebSocketHTTPServerEventos › OnCommandOther

OnCommandOther Evento

Se activa cuando el servidor HTTP recibe un método distinto de GET, POST o HEAD (PUT, DELETE, OPTIONS, PATCH...).

Sintaxis

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

Valor Predeterminado

Observaciones

OnCommandOther se activa para métodos HTTP que no son GET, POST ni HEAD (PUT, DELETE, OPTIONS, PATCH, TRACE...). Inspeccione ARequestInfo.Command para saber qué verbo se utilizó y ARequestInfo.Document para la URI de destino; rellene AResponseInfo.ContentText/ContentStream, ContentType y ResponseNo igual que en OnCommandGet. Gestionar este evento es la forma habitual de implementar extremos REST que aceptan verbos más allá de GET/POST; úselo junto con OnBeforeCommand cuando la solicitud también requiera autorización previa.

Ejemplo


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;

Volver a Eventos