Requête GET sur API avec token d'authentification

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
billou95
Niveau 1
Niveau 1
Messages : 1
Enregistré le : jeu. 14 févr. 2019 11:26
Status : Hors ligne

Requête GET sur API avec token d'authentification

#1

Message 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)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#2

Message 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)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre