TsgcWebSocketHTTPServer › Eventos › OnCommandOther
Se activa cuando el servidor HTTP recibe un método distinto de GET, POST o HEAD (PUT, DELETE, OPTIONS, PATCH...).
property OnCommandOther: TIdHTTPCommandEvent;
// TIdHTTPCommandEvent = procedure(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo) of object
—
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.
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;