|
Started by guev, May, 13 2022 12:34 AM - 11 replies |
| |
| | | |
|
| |
Registered member 79 messages |
|
Posted on May, 13 2022 - 12:34 AM |
Bonjour
Je suis un peu perdu et surtout novice avec les webservices.
Je dois utiliser des webservices pour un logiciel de fidélité. La doc est ici : https://qa.adelya.com/apiv1/index.jsp
Voici les identifiants : Identifiant API : API_YvesRocher_Gbh Mot de Passe : XJcqLM759pd5 APIKEYS : KEY-f6fde269-2753-4eba-8bf3-55928432c74a
Je n'arrive pas à me connecter. Je ne sais pas trop quelle syntaxe écrire. J'ai fait ceci mais ça ne fonctionne pas.
api_key est une chaîne UNICODE = "KEY-f6fde269-2753-4eba-8bf3-55928432c74a" h est un HTTPRequête h..Méthode = httpGet h..URL = "http://qa.adelya.com/apiv1/webapi.do" h..Utilisateur = "API_YvesRocher_Gbh" h..MotDePasse = "XJcqLM759pd5"
r est un restRéponse = RESTEnvoie(h)
SI r..CodeEtat = 200 ALORS MonJson est un JSON = r.Contenu Info(MonJson) SINON Erreur("Erreur") FIN
Quelqu'un peut-il m'aider ? Je vous remercie.
Hervé
-- Hervé |
| |
| |
| | | |
|
| | |
| |
Registered member 79 messages |
|
Posted on May, 13 2022 - 4:41 AM |
Voici une doc supplémentaire : https://docs.google.com/document/d/1tje4bLnMhTJjxni4yyJt8j8kjEdBIa4KWYdxJj4pCC8/edit
J'ai modifié mon code comme ceci mais toujours une erreur :
h est un HTTPRequête h..Méthode = httpGet h..URL = "http://qa.adelya.com/apiv1/webapi.do" h..Entête["Authorization"] = Encode("KEY-f6fde269-2753-4eba-8bf3-55928432c74a" + ";" + "API_YvesRocher_Gbh" + ";" + "XJcqLM759pd5", encodeBASE64)
r est un restRéponse = RESTEnvoie(h)
SI r..CodeEtat = 200 ALORS MonJson est un JSON = r.Contenu Info(MonJson) SINON Erreur("Erreur") FIN
Il manque la mentions "Basic " dans le header HTTP, mais je ne sais pas où le placer. Merci à ceux qui veulent bien m'aider.
hervé
-- Hervé |
| |
| |
| | | |
|
| | |
| |
Registered member 79 messages |
|
Posted on May, 13 2022 - 5:32 AM |
J'ai avancé un peu mais toujours une erreur.
Serveur, protocole, url_API est une chaîne requete est un HTTPRequête reponse est un httpRéponse vConstReq est un Variant vConstReqCompl est un Variant
Serveur = "qa.adelya.com" protocole = "https://" url_API = "/apiv1/webapi.do?"
sUsername est une chaîne = "API_YvesRocher_Gbh" sPassword est une chaîne = "XJcqLM759pd5" gsClAPI est une chaîne = "KEY-f6fde269-2753-4eba-8bf3-55928432c74a"
sBasiAuth est une chaîne = gsClAPI+";"+sUsername+":"+sPassword sBasiAuth = "Basic "+Encode(sBasiAuth, encodeBASE64)
vConstReqCompl.action = "show" vConstReq.FidelityMember.name = "DUPOND"
requete.URL = protocole + sErveur + url_API+"json_header="+VariantVersJSON(vConstReqCompl)+"&json_data="+VariantVersJSON(vConstReq)
requete.Méthode = httpGet requete.ContentType = typeMimeJSON requete.Entête [ "Accept" ] = "application/json" requete.Entête[ "Authorization" ] = sBasiAuth requete.IgnoreErreur = httpIgnoreCertificatExpiré + httpIgnoreCertificatInvalide + httpIgnoreNomCertificatInvalide + httpIgnoreRedirection + httpIgnoreRevocation
reponse = HTTPEnvoie( requete )
SI ErreurDétectée ALORS Erreur("ERREUR ----- " + ErreurInfo(errComplet)) SINON Info("REST REPONSE --------------- " + reponse..Contenu) FIN
Une idée ? Merci
Hervé
-- Hervé |
| |
| |
| | | |
|
| | |
| |
Registered member 10 messages Popularité : +1 (1 vote) |
|
Posted on May, 13 2022 - 8:57 AM |
Bonjour Hervé,
J'ai fait qques modifs, ca à l'air de répondre maintenant
Dans la fonction Encode, il faut bien mettre "encodeBASE64SansRC" en paramètre sinon il y un RC dans l'encodage ! Il faut mettre le JSON des paramètres dans ..Contenu
Bonne journée.
Serveur, protocole, url_API est une chaîne requete est un HTTPRequête reponse est un httpRéponse vConstReq est un Variant vConstReqCompl est un Variant
Serveur = "qa.adelya.com" protocole = "https://" url_API = "/apiv1/webapi.do"
sUsername est une chaîne = "API_YvesRocher_Gbh" sPassword est une chaîne = "XJcqLM759pd5" gsClAPI est une chaîne = "KEY-f6fde269-2753-4eba-8bf3-55928432c74a"
sBasiAuth est une chaîne = gsClAPI+";"+sUsername+":"+sPassword sBasiAuth = "Basic "+Encode(sBasiAuth, encodeBASE64SansRC)
vConstReqCompl.action = "show" vConstReq.FidelityMember.name = "DUPOND"
requete..URL = protocole + Serveur + url_API requete..Méthode = httpPost requete..ContentType = "application/json" requete..Entête["Accept"] = "application/json" requete..Entête["Authorization"] = sBasiAuth requete..IgnoreErreur = httpIgnoreCertificatExpiré + httpIgnoreCertificatInvalide + httpIgnoreNomCertificatInvalide + httpIgnoreRedirection + httpIgnoreRevocation
requete.Contenu = [ json_header={action:"show"}&json_data={FidelityMember:{name:"DUPOND"}} ]
reponse = HTTPEnvoie(requete)
SI ErreurDétectée ALORS Erreur("ERREUR ----- " + ErreurInfo(errComplet)) SINON Info("REST REPONSE :" + RC + reponse.Contenu) FIN |
| |
| |
| | | |
|
| | |
| |
Registered member 79 messages |
|
Posted on May, 14 2022 - 9:06 PM |
Merci je regarde ça des lundi.
-- HervéMessage modified, May, 14 2022 - 9:17 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 79 messages |
|
Posted on May, 16 2022 - 6:52 AM |
Bonjour
En effet l'erreur ne s'affiche plus ce qui est déjà bien. Je me bat en ce moment pour récupérer des données. J'ai toujours une erreur 3007.
Merci Hervé
-- Hervé |
| |
| |
| | | |
|
| | |
| |
Registered member 10 messages Popularité : +1 (1 vote) |
|
Posted on May, 16 2022 - 9:20 AM |
Bonjour,
Il y a le même retour (3007) avec une requête en curl, cela ne vient plus de windev. Le nom "dupont" existe dans votre base ? |
| |
| |
| | | |
|
| | |
| |
Registered member 79 messages |
|
Posted on May, 16 2022 - 10:14 PM |
Bonjour
Je viens d'avoir les données contenu dans la base de test. Il y a un seul enregistrement.
{ "FidelityMember":{ "id":"22", "dateUpdate":"2022-05-13 09:02:13", "idExternals":"", "uniqueId":"1a279800-8c07-4f05-ad20-84dd5e89de50", "uid":"", "defaultLanguage":"FR", "cardnumber":"", "type":"C", "src":"C", "gender":"", "name":"CAZALS", "secondName":"", "firstname":"Charlotte", "login":"1707117086", "passwordDateUpdate":"2022-05-11 14:40:01", "job":"", "webSite":"", "maritalState":"", "mobile":"", "carrier":"", "nbPoint":"0", "cumulPoint":"0", "nbCredit":"0.0", "cumulCredit":"0.0", "cumulCA":"0.0", "montantCA":"0.0", "email":"charlotte.cazals@adelya.com", "tel":"", "tel2":"", "smsoptin":false, "smsOptinStatus":"0", "emailoptin":false, "emailOptinStatus":"0", "mailoptin":false, "mailOptinStatus":"0", "teloptin":false, "telOptinStatus":"0", "partneroptin":false, "partnerOptinStatus":"0", "sponsored":false, "actif":"1", "npei":"0", "npmi":"0", "netPrice":"0.0", "dateCreate":"2022-05-11 14:40:01", "children":"", "linkedObjects":"", "address":{ "id":"22", "country":"RE", "geocodingStatus":"0", "line1":"Apt A04 La cours des Près", "line2":"", "npai":false, "qualityStatus":"-1", "region":"", "rnvpStatus":"0", "streetNumber":"", "streetType":"12 Rue Simone Boudet, Apt A04 La cours des Près", "town":"", "zip":"" }, "criteria":{ "id":"22" }, "group":{ "id":"28420", "uniqueId":"G-2a97f9b1-d707-446e-9bd8-f139680ea809", "codeGroup":"GBHYvesRocher", "salesDescr":"Yves Rocher Réunion", "descrGroup":"Yves Rocher Réunion" }, "globalGroup":"28420", "fidProgramCode":"", "user":"153433" } }
Je n'ai pas encore trouvé la solution. Merci
Hervé
-- Hervé |
| |
| |
| | | |
|
| | |
| |
Registered member 79 messages |
|
Posted on May, 17 2022 - 2:48 AM |
Bonjour
J'ai réussi avec ce code :
Serveur, protocole, url_API est une chaîne requete est un HTTPRequête reponse est un httpRéponse vConstReq est un Variant vConstReqCompl est un Variant
Serveur = "qa.adelya.com" protocole = "https://" url_API = "/apiv1/webapi.do?"
sUsername est une chaîne = "API_YvesRocher_Gbh" sPassword est une chaîne = "XJcqLM759pd5" gsClAPI est une chaîne = "KEY-f6fde269-2753-4eba-8bf3-55928432c74a"
sBasiAuth est une chaîne = gsClAPI+";"+sUsername+":"+sPassword sBasiAuth = "Basic "+Encode(sBasiAuth, encodeBASE64SansRC)
vConstReqCompl.action = "show" vConstReq.FidelityMember.id = "23"
requete..URL = protocole + Serveur + url_API + "json_data="+Remplace(VariantVersJSON(vConstReq,psdMinifié),Caract(34),"'")
requete..Méthode = httpPut requete..ContentType = "application/json" requete..Entête["Accept"] = "application/json" requete..Entête["Authorization"] = sBasiAuth requete..IgnoreErreur = httpIgnoreCertificatExpiré + httpIgnoreCertificatInvalide + httpIgnoreNomCertificatInvalide + httpIgnoreRedirection + httpIgnoreRevocation
reponse = HTTPEnvoie(requete)
SI ErreurDétectée ALORS Erreur("ERREUR ----- " + ErreurInfo(errComplet)) SINON Info("REST REPONSE :" + RC + reponse.Contenu) FIN
Il y a peut-être mieux pour optimiser le code. Avez-vous des suggestions ?
En tout cas merci
hervé
-- Hervé |
| |
| |
| | | |
|
| | |
| |
Registered member 79 messages |
|
Posted on May, 17 2022 - 3:01 AM |
Un problème tout de même si je met un "é" à Hervé dans la chaine firstname. Surement un problème d'encodage.
Hervé
-- Hervé |
| |
| |
| | | |
|
| | |
| |
Registered member 79 messages |
|
Posted on May, 17 2022 - 3:05 AM |
La solution :
URLEncode(protocole + Serveur + url_API + "json_data="+Remplace(VariantVersJSON(vConstReq,psdMinifié),Caract(34),"'"),encodeURLDepuisAnsi)
Hervé
-- Hervé |
| |
| |
| | | |
|
| | |
| |
Registered member 5 messages |
|
Posted on August, 05 2022 - 12:02 PM |
Vous avez pu réussir tout ce que vous vouliez avec l'API ?
voici le code de ma procédure d'envoi de requête si cela peut vous aider :
// Résumé : // Syntaxe : //[ = ] pg_FidAdelya_Envoi_RequêteHTTP ( [ est Fidelite_Adelya.gc_enum_Methodes_FidRoady [, est JSON [, est chaîne]]]) // // Paramètres : // pp_MethodeHTTP (Fidelite_Adelya.gc_enum_Methodes_FidRoady) : // pp_json_CriteresRequete (JSON - valeur par défaut="") : // pp_chn_ChampsArecuperer (chaîne ANSI - valeur par défaut="") : // Valeur de retour : // gc_str_Reponse_FidRoady : // Aucune // // Exemple : // Indiquez ici un exemple d'utilisation. // // pp_str_Retour (gc_str_Retour) : // pp_tab_Parametres (tableau associatif - valeur par défaut="") : > // pp_boo_TestServeur (booléen - valeur par défaut=0) : PROCÉDURE pg_FidAdelya_Envoi_RequêteHTTP(pp_MethodeHTTP est une gc_enum_Methodes_FidRoady = Http_Get, pp_json_CriteresRequete est un JSON = "", pp_chn_ChampsArecuperer est une chaîne = "") : gc_str_Reponse_FidRoady // Envoi une requête HTTP à Adelya // pp_boo_TestServeur = booléen qui sert à vérifier que le serveur répond // Inutilisé // pp_MethodeHTTP = type de requête (http_Get, http_Put) surchargé à la propriété native pour pouvoir les passer en paramètre sans passer des entiers pour plus de clarté v_chn_CriteresRequete est une chaîne v_http_Reponse est une httpRéponse // Résultat de la requête HTTP v_str_ReponseRequete est un gc_str_Reponse_FidRoady // Résultat de la requête Vraie si erreur + Message d'erreur sinon Faux et contenu renvoyé v_str_ReponseRequete.boo_Erreur = Vrai // Erreur à vrai par défaut v_json_ResultatAPI est un JSON // Résultat de la requête au format JSON v_chn_ErreurMessage est une chaîne // Message d'erreur Adelya v_chn_ErreurCode est une chaîne // Code erreur Adelya v_http_Requete est un httpRequête // Requête v_boo_ErreurAPI est un booléen // Si erreur détectée au niveau de l'API v_chn_ReqLog est une chaîne = JSONVersChaîne(pp_json_CriteresRequete, psdMinifié) v_boo_RetourMail est un booléen v_chn_TexteMail est une chaîne = "Bonjour, une Erreur de TimeOut est survenue lors d'une requête de fidélité sur le Pdv %1 à %2" +RC v_chn_TexteMail += RC + "Voici le contenu de la requête : " v_chn_TexteMail += RC + "%3" +RC v_chn_TexteMail += RC + "Le TimeOut est fixé a %4 secondes" v_chn_TexteMail += RC + "Type de requête : %5" v_chn_LibMethode est une chaîne
SI gp_boo_ProxyClient ALORS Proxy("") FIN
SI gc_chn_CleStime <> "" ALORS // Entête clé de sécurité STIME v_http_Requete.Entête["KeyId"] = gc_chn_CleStime FIN
// Construction de l'entête d'authentification Basic + APIKEY + ; + USER + : + MDP et encodage en base64 v_chn_authAPI est une chaîne = gc_chn_Apikey_FidAdelya + ";" + gc_chn_User_FidAdelya + ":" + gc_chn_Password_FidAdelya v_http_Requete.Entête["Authorization"] = "Basic " + Encode(v_chn_authAPI, encodeBASE64) // Suppression des RC que Windev génère ... pour raison inconnue, peut-être à cause de l'encodage base 64. v_http_Requete.Entête["Authorization"] = Remplace(v_http_Requete.Entête["Authorization"], RC, "") // Méthode v_http_Requete.Méthode = pp_MethodeHTTP v_http_Requete.IgnoreErreur = httpIgnoreCertificatInvalide+httpIgnoreNomCertificatInvalide+httpIgnoreCertificatExpiré+httpIgnoreRenvoiHTTP+httpIgnoreRenvoiHTTPS+httpIgnoreRévocation // URL v_http_Requete.URL = gc_chn_Url_FidAdelya
// Timeout SI gc_int_TimeOut = 0 ALORS v_http_Requete.DuréeNonRéponse = 20000 SINON v_http_Requete.DuréeNonRéponse = gc_int_TimeOut * 1000 FIN
// Converti en JSON la requête avec encodage base utf8 SI SansEspace(pp_json_CriteresRequete) <> "" ALORS v_chn_CriteresRequete = pp_json_CriteresRequete v_chn_CriteresRequete = Remplace(v_chn_CriteresRequete, "%", "pourcent") // Suppression des & sinon la requête HTTP plante car elle compte un paramètre en trop v_chn_CriteresRequete = Remplace(v_chn_CriteresRequete, "&", "et") v_chn_CriteresRequete = ChaîneVersJSON(v_chn_CriteresRequete) SI v_http_Requete.Méthode <> httpPut ALORS v_chn_LibMethode = "Récupération de données" v_chn_CriteresRequete = URLEncode(v_chn_CriteresRequete, encodeURLDepuisUTF8) v_chn_CriteresRequete = "json_data=" + v_chn_CriteresRequete SI pp_chn_ChampsArecuperer <> "" ALORS // Suppression des & sinon la requête HTTP plante car elle compte un paramètre en trop pp_chn_ChampsArecuperer = Remplace(pp_chn_ChampsArecuperer, "&", "et") pp_chn_ChampsArecuperer = URLEncode(pp_chn_ChampsArecuperer, encodeURLDepuisUTF8) pp_chn_ChampsArecuperer = "&fields=" + pp_chn_ChampsArecuperer FIN v_http_Requete.URL += "?" + v_chn_CriteresRequete + pp_chn_ChampsArecuperer SI SansEspace(gc_chn_ListeParamSupplementaire) <> "" _ET_ gc_chn_ListeParamSupplementaire[1] = "&" ALORS v_http_Requete.URL += gc_chn_ListeParamSupplementaire FIN SINON v_chn_LibMethode = "Création ou modification de données" // ContentType v_http_Requete.ContentType = "application/x-www-form-urlencoded" v_http_Requete.Contenu = URLEncode(v_chn_CriteresRequete, encodeURLDepuisUTF8) v_http_Requete.Contenu = "json_data=" + v_http_Requete.Contenu SI SansEspace(gc_chn_ListeParamSupplementaire) <> "" _ET_ gc_chn_ListeParamSupplementaire[1] = "&" ALORS v_http_Requete.URL += "?" + Milieu(gc_chn_ListeParamSupplementaire, 2, Taille(gc_chn_ListeParamSupplementaire)) FIN FIN SINON v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Faux, _client, "Requête vide") FIN
//pg_Journalisation("FIDELITE ADELYA REQUETE : " +RC+ "Url : " + v_http_Requete.URL +RC+ "Authorization : " + "Basic " + Encode(v_chn_authAPI, encodeBASE64) + RC+ "Méthode : " + v_http_Requete.Méthode +RC+ "Contenu : "+ v_http_Requete.Contenu) MajLog("Jou_Fidelite.log", RC +"REQUETE : " +RC+ "Url : " + v_http_Requete.URL +RC+ "Authorization : " + "Basic " + Encode(v_chn_authAPI, encodeBASE64) + RC+ "KeyId : " + gc_chn_CleStime + RC+ "Méthode : " + v_http_Requete.Méthode +RC+ "Contenu : "+ v_http_Requete.Contenu) MajLog("Jou_Fidelite.log", RC +"CONTENU SANS ENCODAGE : " + v_chn_ReqLog)
// Envoi requête et lecture réponse ChronoDébut() v_http_Reponse = HTTPEnvoie(v_http_Requete) v_dur_Duree est une Durée = ChronoFin() SI v_dur_Duree > v_http_Requete.DuréeNonRéponse ALORS MajLog("Jou_Fidelite.log", RC + "TIMEOUT de "+v_http_Requete.DuréeNonRéponse/1000+" secondes dépassé") v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Vrai, _http, "", "La requête fidélité met trop de temps à s'exécuter (plus de " + v_http_Requete.DuréeNonRéponse/1000 + " secondes)") SI gc_boo_MailTimeout ALORS SI gc_chn_MailDestinatairesTimeout <> "" ALORS v_chn_TexteMail = ChaîneConstruit(v_chn_TexteMail, PARAGE.AGEVIL + " - " + PARAGE.LIb6, DateHeureVersChaîne(DateHeureSys()), v_chn_ReqLog, gc_int_TimeOut, v_chn_LibMethode) // v_chn_TexteMail += rc + "Temps de la réponse : " + v_dur_Duree..EnSecondes + " !" Envoi_Mail(:v_boo_RetourMail, :gc_chn_MailDestinatairesTimeout, : "Fidélité - Erreur de TIMEOUT " + PARAGE.AGEVIL, :v_chn_TexteMail, :"ne-pas-repondre@inovaxo.fr", :"1") FIN FIN SINON SI ErreurDétectée ALORS v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Vrai, _http, "", "Impossible de se connecter à l'API Adelya" + RC + RC + ErreurInfo(errMessage)) SINON // Code état HTTP 200 = OK sinon Erreur http SI v_http_Reponse.CodeEtat = 200 ALORS // Cas test serveur SI v_http_Reponse.ContentType <> "application/json;charset=UTF-8" ALORS v_str_ReponseRequete = pg_FidAdelya_Extraire_Erreur(v_http_Reponse.Contenu) SINON v_json_ResultatAPI = ChaîneVersJSON(v_http_Reponse.Contenu) SI PAS ErreurDétectée ALORS SI TableauOccurrence(v_json_ResultatAPI..Membre) > 0 ALORS SI v_json_ResultatAPI..Membre[1]..Nom = "ApiReturn" ALORS // Si ApiReturn et propriété code pas égale à OK alors il y a une erreur POUR TOUT Json_Membre DE v_json_ResultatAPI..Membre[1] // Erreurs Adelya traduites dans un tableau associatif de la collection SI Json_Membre..Nom = "code" SI Json_Membre..Valeur = "OK" ALORS v_boo_ErreurAPI = Faux SORTIR SINON v_boo_ErreurAPI = Vrai FIN SINON // Construction du message d'erreur provenant d'Adelya avec son code (errorCode) et son message (errorMessage) traduit (Sans traduction champ = message) SI v_boo_ErreurAPI ET Json_Membre..Nom = "errorCode" ALORS v_chn_ErreurCode = Json_Membre..Valeur FIN SI v_boo_ErreurAPI ET Json_Membre..Nom = "errorMessage" ALORS v_chn_ErreurMessage = Json_Membre..Valeur v_chn_ErreurMessage = UTF8VersChaîne(v_chn_ErreurMessage) FIN FIN FIN SI v_boo_ErreurAPI ALORS v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Vrai, _api, v_chn_ErreurCode, v_chn_ErreurMessage) SINON v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Faux, _Aucune, "", "", v_json_ResultatAPI) FIN SINON v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Faux, _Aucune, "", "", v_json_ResultatAPI) FIN SINON v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Vrai, _api, "", "Aucun résultat renvoyé par l'API Adelya") FIN SINON v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Vrai, _api, "", "Le format JSON renvoyé par l'API Adelya est incorrect") FIN FIN SINON // Erreur HTTP v_chn_ErreurCode = SansEspace(v_http_Reponse.CodeEtat) v_chn_ErreurMessage = SansEspace(v_http_Reponse.DescriptionCodeEtat) v_str_ReponseRequete = pg_FidAdelya_Traite_Reponse(Vrai, _http, v_chn_ErreurCode, v_chn_ErreurMessage) FIN FIN FIN
SI gp_boo_ProxyClient=1 ET NoSpace(gp_chn_ProxyAdress)<>"" ALORS SI gp_chn_ProxyLogin<>"" ALORS Proxy(gp_chn_ProxyAdress, Val(gp_int_ProxyPort),gp_chn_ProxyLogin,gp_chn_ProxyPass) SINON Proxy(gp_chn_ProxyAdress, Val(gp_int_ProxyPort)) FIN FIN
SI v_str_ReponseRequete.boo_Erreur ALORS MajLog("Jou_Fidelite.log", RC +"ERREUR : " +RC+ "Résultat renvoyé par l'API : "+ v_http_Reponse.Contenu +RC+ "Erreur : " + v_str_ReponseRequete.chn_ErreurCode + " - "+ Remplace(v_str_ReponseRequete.chn_ErreurMessage, RC, "")) //MajLog("Jou_Fidelite.log", rc +"REQUETE D'ORIGINE : " +RC+ "Url : " + v_http_Requete.URL +RC+ "Authorization : " + "Basic " + Encode(v_chn_authAPI, encodeBASE64) + RC+ "Méthode : " + v_http_Requete.Méthode +RC+ "Contenu : "+ v_http_Requete.Contenu) MajLog("Jou_Fidelite.log", RC +"IPs : " +RC+ NetListeAdresseIP() +RC) SINON MajLog("Jou_Fidelite.log", RC +"SUCCES : " +RC+ "Résultat renvoyé par l'API : "+ v_http_Reponse.Contenu) FIN MajLog("Jou_Fidelite.log", RC)
gc_boo_IgnoreNotFoundLog = Faux RENVOYER(v_str_ReponseRequete)
-- Cordialement,
Lucas Cabley |
| |
| |
| | | |
|
| | | | |
| | |
|