|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Comment exécuter une commande CURL? |
| Débuté par Nicolas ROBIN, 25 mar. 2020 09:45 - 5 réponses |
| |
| | | |
|
| |
Membre enregistré 87 messages |
|
| Posté le 25 mars 2020 - 09:45 |
Bonjour,
Quelqu'un saurait-il par quel moyen je pourrais exécuter une commande CURL en Windev et comment récupérer la réponse retournée?
Ce que je souhaiterais faire serait avec une commande Curl de ce type:
curl –k –H "content-type :application/x-www-form-urlencoded" –d "grant_type=client_credentials&client_id=XXXXX&client_secret=XXXXXXX&scope=openid" –X POST https://sandbox-oauth.aife.economie.gouv.fr/api/oauth/token
Cordialement,
--
NR |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 35 messages |
|
| Posté le 25 mars 2020 - 13:23 |
Salut
Je viens de terminer un problème avec une commance curl à traduire en erbdev dans mon cas alors je me permet de traduire la tienne. Je ne garantie pas le fonctionnement à 100% mais tu ne devrais pas être loin de la réponse finale.
Commence en utilisant ce code :
MaHttp est une httpRequête cMaReponse est un httpRéponse
Data est une structure grant_type est une chaîne client_id est une chaîne client_secret est une chaîne scope est une chaîne FIN
sDataJSON est une chaîne stDataStructure est un Data
stDataStructure:grant_type = "client_credential" stDataStructure:client_id = "XXXXX" stDataStructure:client_secret = "XXXXXXX" stDataStructure:scope = "openid" Sérialise(stDataStructure, sDataJSON, psdJSON)
MaHttp.Méthode = httpPost MaHttp.Entête["Content-Type"] = "application/x-www-form-urlencoded" MaHttp.URL = "https://sandbox-oauth.aife.economie.gouv.fr/api/oauth/token" MaHttp.Contenu = sDataJSON
cMaReponse = HTTPEnvoie(MaHttp) SI ErreurDétectée ALORS Trace("Erreur" + RC + ErreurInfo(errComplet)) SINON Trace(cMaReponse..Contenu) FIN
Bonne chance pour la suite 
PS Le forum pourrait t'aider si tu fais quelques recherche pour finaliser le tout, et l'aide sur la définition des types de variables httprequete et httpreponse. Pour ma part, j'ai trouvé la solution avec quelques recherches dans le forum et l'aide en ligne.
-- André Marquis Concept Info Web www.concept-infoweb.net |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 87 messages |
|
| Posté le 25 mars 2020 - 14:14 |
Merci Andre pour ta réponse.
J'ai trouvé une solution différente qui fonctionne mais j'aime bien ta façon de faire. Je la trouve plus clair que la mienne.
J'ai traduit la commande CURL suivante:
curl –k –H "content-type :application/x-www-form-urlencoded" –d "grant_type=client_credentials&client_id=XXXXX&client_secret=XXXXXXX&scope=openid" –X POST https://sandbox-oauth.aife.economie.gouv.fr/api/oauth/token
Ainsi:
FONCTION Donne_Token(LOCAL psClient_id est une chaîne,LOCAL psClient_secret est une chaîne,LOCAL psToken_Url est une chaîne,pstToken est un ST_structure___TOKEN)
sRESULTAT_CleToken est une chaîne stRESULTAT_Token est un ST_structure___TOKEN
http_REQ est une httpRequest http_REP est une httpResponse
bufJson_SORTIE est un Buffer
bErreur est un booléen sMsg_Err est une chaîne
SI TOKEN_Valide(pstToken) ALORS stRESULTAT_Token =pstToken sRESULTAT_CleToken =stRESULTAT_Token.access_token SINON http_REQ..Method =httpPost http_REQ..URL =psToken_Url http_REQ..User =psClient_id http_REQ..Password =psClient_secret http_REQ..ContentType ="application/x-www-form-urlencoded" http_REQ..Content =ChaîneVersUTF8(ChaîneConstruit("grant_type=client_credentials&client_id=%1&client_secret=%2&scope=openid",psClient_id,psClient_secret)) http_REP =HTTPEnvoie(http_REQ) SI ErreurDétectée ALORS bErreur =Vrai sMsg_Err ="Erreur durant la récupération du Token d'authentification CHORUS."+RC+RC+ErreurInfo(errMessage) sRESULTAT_CleToken ="" SINON bufJson_SORTIE =http_REP..Contenu SI Deserialise_JSON(bufJson_SORTIE,stRESULTAT_Token) ALORS SI TOKEN_Valide(stRESULTAT_Token) ALORS sRESULTAT_CleToken =stRESULTAT_Token.access_token SINON bErreur =Vrai sMsg_Err ="Erreur durant la récupération du Token d'authentification CHORUS." sRESULTAT_CleToken ="" FIN FIN FIN SI bErreur ALORS sRESULTAT_CleToken ="" Erreur(sMsg_Err) FIN FIN
RENVOYER (stRESULTAT_Token,sRESULTAT_CleToken)
PROCEDURE INTERNE TOKEN_Valide(LOCAL pstToken_TMP est un ST_structure___TOKEN) bToken_Valide est un booléen dh est une DateHeure dh_Validite_DBT est une DateHeure dh_Validite_FIN est une DateHeure du_Validite_DUREE est une Durée dh =DateHeureSys SI pstToken_TMP.access_token<>"" ALORS SI DateHeureValide(pstToken_TMP.DateHeure_RecupToken) ALORS dh_Validite_DBT =pstToken_TMP.DateHeure_RecupToken du_Validite_DUREE..EnSecondes =pstToken_TMP.expires_in dh_Validite_FIN =dh_Validite_DBT+du_Validite_DUREE SI dh<dh_Validite_FIN ALORS bToken_Valide =Vrai FIN FIN FIN RENVOYER bToken_Valide FIN
--
NR |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 11 messages |
|
| Posté le 17 avril 2020 - 18:59 |
Merci Nicolas ROBIN, J'étais confronté à un problème d'OAuth / GetToken qui fonctionnait avec SOAPui mais pas en WinDev... Votre code ma inspiré avec succès. Le point déterminant pour moi réside dans le fait de NE PAS envoyer de header d'autentification Basic [user]:[pass] en base 64 mais de spécifier dans le contenu "&client_id=[user]&client_secret=[pass]" Merci ! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 messages |
|
| Posté le 17 juin 2020 - 12:57 |
Bonjour tout le monde, Je ne sais pas si je poste ceci au bonne endroit mais j'ai un probléme un peu similaire et je recherche un pro qui puisse m'aider à retranscrire la commande CURL suivante en W langage (winDev 24) pour obtenir ce résultat dans une chaine. Merci toute aide me sera trés précieuse :
curl -k https://eh-digitalsolutions.atlassian.net/rest/api/latest/configuration --user <Login>:<MDP>
Voici la réponse obtenue que je cherche à obtenir:
{"votingEnabled":true,"watchingEnabled":true,"unassignedIssuesAllowed":true,"subTasksEnabled":true,"issueLinkingEnabled":true,"timeTrackingEnabled":true,"attachmentsEnabled":true,"timeTrackingConfiguration":{"workingHoursPerDay":8.0,"workingDaysPerWeek":5.0,"timeFormat":"hours","defaultUnit":"hour"}}
Merci encore pour toutes vos réponses
PS: J'ai essayé un tat de chose avec Httpxxx sans résultats
Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 953 messages |
|
| Posté le 17 juin 2020 - 14:18 |
bonjour COJE,
quel code avez vous testé ? car je pense que le simple code suivant doit fonctionner :
_rest_request est un restRequest _rest_result est un restResponse
_rest_request.URL="https://eh-digitalsolutions.atlassian.net/rest/api/latest/configuration" _rest_request.Utilisateur="toto" _rest_request.MotDePasse="tata"
_rest_result=RESTEnvoie(_rest_request) SI PAS ErreurDétectée ALORS Info(_rest_result..CodeEtat,_rest_result..Contenu) FIN
Mais à première vue, Atlassian n'autorise plus l'authentification en mode basic, vous devrez changer de méthode d'authentification en passant par les API Tokens : https://confluence.atlassian.com/cloud/deprecation-of-basic-authentication-with-passwords-for-jira-and-confluence-apis-972355348.html
bon dèv |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|