Page 1 sur 1

Requête GET sur API avec token d'authentification

Posté : jeu. 14 févr. 2019 11:35
par billou95
Bonjour,

Help ! J'essaye en vain d'effectuer une requête GET sur une API à l'aide d'un token d'authentification. Sous Chrome, lorsque j'ouvre l'URL de l'API, le navigateur m'ouvre une popin standard login/password et il me suffit de rentrer le token dans la partie login pour que cela fonctionne avec une réponse instantanée du serveur. Sous Autoit, j'utilise un code standard WinHttp, que je passe le token par token@URL ou via le header, j'obtiens toujours une erreur "délai de la requête dépassé". Testé cette requête directement avec Postman, cela marche aussi très bien. Y'a vraiment un souci juste avec Autoit. J'ai tout essayé et fouillé un peu partout à la recherche d'une info, je suis un peu coincé. Merci d'avance.

Code avec Basic Auth:
#include <WinHttp.au3>
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("GET", "https://mon_api.com/ma?requete=critere", False)
$oHTTP.SetRequestHeader('content-type','application/json')
$oHTTP.SetRequestHeader('Authorization','Basic ' & "ZWJkNmJhNzItNmRmYi00NDY1LWE2NjYtN2ViZjA4MGQwNWE5==")
$oHTTP.Send()
$oReceived = $oHTTP.ResponseText
$oStatusCode = $oHTTP.Status
MsgBox(64, 'Test', $oStatusCode)
Code avec Token passé dans l'URL:
#include <WinHttp.au3>
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("GET", "https://mon_token@mon_api.com/ma?requete=critere", False)
$oHTTP.SetRequestHeader('content-type','application/json')
$oHTTP.Send()
$oReceived = $oHTTP.ResponseText
$oStatusCode = $oHTTP.Status
MsgBox(64, 'Test', $oStatusCode)

Re: Requête GET sur API avec token d'authentification

Posté : jeu. 14 févr. 2019 18:55
par orax
Il arrive que certains logiciels (antivirus, pare-feu, etc.) bloquent AutoIt.
Est-ce que ça marche avec un exemple simple comme celui ci-dessous ?

Code : Tout sélectionner

$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("GET", "http://example.com", False)
$oHTTP.Send()
$sReceived = $oHTTP.ResponseText
$iStatusCode = $oHTTP.Status
MsgBox(64, 'Test', $iStatusCode)