J’ai une API REST que je veux utiliser directement dans le code java.
J’ai lu la documentation (javadoc) de la classe RESTTool, et je n’arrive pas à récupérer le token bearer (erreur 400 bad request à chaque fois).
Pourtant l’URL est la bonne. Donc la seule solution c’est que le body soit faux.
J’ai seulement ses 3 informations à renseigner :
client_id → info1
client_secret → info2
grant_type → info3
Pourriez-vous m’aidez à trouver la syntaxe exacte du POST à effectuer pour récupérer le token ?
Sachant que lorsqu’on utilise l’API sous AZURE, tout fonctionne. Voici la configuration :
Il faudrait déjà commencer par remplacer le e.printStacktrace() par AppLog.error(null, e, getGrant()) pour que l’exception (s’il y en a une) remonte correctement dans les logs
Ensuite le pb est sans doute que sans content type explicite RESTTool utilise, par défaut, un content type JSON, donc dans votre cas je pense qu’il faut appeler cette variante de post: RESTTool
Avec l’argument mime valant HTTPTool.MIME_TYPE_FORM = application/x-www-form-urlencoded
PS: si la classe helper RESTTool ne correspond pas à vos besoin vous pouvez utiliser d’autres libs d’appel HTTP plus bas niveau intégrées dans Simplicité, typiquement Apache HTTPClient ou UniREST
Peut être en utilisant une Map<String, String> au lieu d’un String pour le body. A la base RESTTool est plutôt été conçu pour les échanges REST avec bodies JSON. Ce n’est peut être juste pas adapté dans votre cas.
Oui 401 c’est en général un pb d’identification et 400 un pb de format de requête (ex: pas le content type attendu, ou format du body incohérent avec le content type déclaré, etc.)