TsgcWebSocketHTTPServer › Gebeurtenissen › OnCommandOther
Wordt geactiveerd wanneer de HTTP-server een andere methode dan GET, POST of HEAD ontvangt (PUT, DELETE, OPTIONS, PATCH...).
__property TIdHTTPCommandEvent OnCommandOther;
// typedef void __fastcall (__closure *TIdHTTPCommandEvent)(TIdContext * AContext, TIdHTTPRequestInfo * ARequestInfo, TIdHTTPResponseInfo * AResponseInfo);
—
OnCommandOther wordt geactiveerd voor HTTP-methoden die geen GET, POST of HEAD zijn (PUT, DELETE, OPTIONS, PATCH, TRACE...). Controleer ARequestInfo.Command om te zien welk werkwoord is gebruikt en ARequestInfo.Document voor de doel-URI; vul AResponseInfo.ContentText/ContentStream, ContentType en ResponseNo in, net als bij OnCommandGet. Het afhandelen van deze gebeurtenis is de gebruikelijke manier om REST-eindpunten te implementeren die andere werkwoorden dan GET/POST accepteren; gebruik het samen met OnBeforeCommand wanneer het verzoek ook autorisatiescreening vereist.
void OnCommandOther(TIdContext *AContext, TIdHTTPRequestInfo *ARequestInfo,
TIdHTTPResponseInfo *AResponseInfo)
{
if (SameText(ARequestInfo->Command, "OPTIONS"))
{
AResponseInfo->CustomHeaders->Add("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
AResponseInfo->ResponseNo = 204;
}
}