ho fatto (anni fa) una webapi in inde che va chiamata con X-HTTP-Override-Method, siccome uso un metodo WebApi (mioMetodo) di una classe WebApi che si trova in un componente, quindi l'url è
http://127.0.0.1:1308/MiaApp/MioComponente/MiaClasse?PARAMETRI
e va chiamata con X-HTTP-Override-Method passandogli il nome del metodo (mioMetodo).
La API la chiamavo da Delphi e ha sempre funzionato.
oggi ho avuto bisogno di chiamarla da Inde e non ci riuscivo.
Seguendo la documentazione ho provato a fare
- Code: Select all
IDMap headers = new()
headers.setValue("ID_HEADERS", "X-HTTP-Override-Method: mioMetodo")
headers.setValue("ID_TYPE", "GET")
string response = getHTTP(webApiUrl, headers, ...)
ma non funziona, per tentativi (procedendo puramente a caso) ho per fortuna imbroccato la soluzione che è:
- Code: Select all
IDMap headers = new()
headers.setValue("ID_TYPE", "mioMetodo")
string response = getHTTP(webApiUrl, headers, ...)
quindi per fare l'override, cioè non usare GET ma mioMetodo, non si deve usare l'header X-HTTP-Override-Method ma mettere in ID_TYPE il nome del metodo, mentre la documentazione di getHttp fa intendere che ID_TYPE si aspetta solo GET o POST.
Siccome funziona deduco che sia il modo corretto di fare, però la documentazione non aiuta, io ci sono arrivato perché in fondo anche su postman si fa così: si scrive mioMetodo invece di GET e funziona.
Da Delphi invece facevo proprio uso di X-HTTP-Override-Method negli headers, chiaramente l'implementazione è diversa lì.
È giusto quindi passare i nome del metodo in ID_TYPE per chiamare una API che si aspetta un override method?
Grazie!