|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
| inserer une variable dans un tableau json |
| Iniciado por lighttechnologie, 24,jul. 2020 04:31 - 4 respuestas |
| |
| | | |
|
| |
Miembro registrado 9 mensajes |
|
| Publicado el 24,julio 2020 - 04:31 |
Bonjour à tous. je dois attaquer un webservice avec la methode post. sauf que ce webservice est en json. J'ai ecris le code que voici
sToken est chaîne="xxxxxxxxxxxxxxxxxxxxxx" cMyRequest is restRequest scheduleRequest is restRequest cMyRequest..URL = "https://api.letexto.com/v1/campaigns" cMyRequest..Entête["Authorization"] = "Bearer "+sToken cMyRequest..Méthode = httpPost cMyRequest..ContentType = "application/json" sParametres est une chaîne sParametres=[ { "step": null, "sender": "L.TECH", "name": "Ma CAMP", "campaignType": "SIMPLE", "recipientSource": "CUSTOM", "groupId": null, "filename": null, "saveAsModel": false, "destination": "NAT", "message": "message", "emailText": null, "recipients": [{ "phone": "22506077966" }], "sendAt": [], "dlrUrl": "", "responseUrl": "" paramvariable } ] cMyRequest..Contenu = ChaîneVersUTF8(sParametres) cMyResponse is restResponse = RESTEnvoie(cMyRequest) SI (cMyResponse..StatusCode)=200 ALORS Info("Erreur") SINON IF ErreurDétectée THEN Error(ErrorInfo(errComplet)) ELSE decodeResponse est Variant =JSONVersVariant( cMyResponse..Content) scheduleRequest..URL = "https://api.letexto.com/v1/campaigns/"+decodeResponse.id+"/schedules" scheduleRequest..Entête["Authorization"] = "Bearer"+sToken scheduleRequest..Méthode = httpPost scheduleRequest..ContentType = "application/json" scheduleRequest..Contenu = ChaîneVersUTF8(sParametres) scheduleResponse is restResponse = RESTEnvoie(scheduleRequest) Info(scheduleResponse.Contenu,decodeResponse.id) END FIN Ce code fonctionne à merveille. Mon problème est que je dois maintenant remplacer le contenu de la variable Sparametres par des variables qui seront fournies par l'utilisateur. Il s'agit des contenus: "sender": "L.TECH" ( L.TECH étant une variable identifiant l'expediteur du message) "message": "message" (message étant le contenu du message à envoyer") "recipients": [{ "phone": "22506077966" }], (22506077966 étant le numero du destinataire) Pour ce faire, j'ai ecris un nouveau code que voici
paramvariable est Variant numtel est chaîne="22506077966" tabRecipient est un tableau[2] de chaînes tabRecipient[1]="phone:" tabRecipient[2]=numtel paramvariable.step=Null paramvariable.sender= "L.TECH" paramvariable.name= "Ma CAMP" paramvariable.campaignType= "SIMPLE" paramvariable.recipientSource= "CUSTOM" paramvariable.groupId=Null paramvariable.filename=Null paramvariable.saveAsModel=False paramvariable.destination= "NAT" paramvariable.message="test sms" paramvariable.emailText=Null paramvariable.recipients=tabRecipient[1]+tabRecipient[2] paramvariable.sendAt= [] paramvariable.dlrUrl= "" paramvariable.responseUrl= "" sToken est chaîne="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" cMyRequest is restRequest scheduleRequest is restRequest cMyRequest..URL = "https://api.letexto.com/v1/campaigns" cMyRequest..Entête["Authorization"] = "Bearer "+sToken
cMyRequest..Méthode = httpPost cMyRequest..ContentType = "application/json" cMyRequest..Contenu = ChaîneVersUTF8(paramvariable) cMyResponse is restResponse = RESTEnvoie(cMyRequest) Info(cMyResponse.Contenu) SI (cMyResponse..StatusCode) = 200 ALORS Info("Erreur") SINON IF ErreurDétectée THEN Error(ErrorInfo(errComplet)) ELSE decodeResponse est Variant =JSONVersVariant( cMyResponse..Content) scheduleRequest..URL = "https://api.letexto.com/v1/campaigns/"+decodeResponse.id+"/schedules" scheduleRequest..Entête["Authorization"] = "Bearer"+sToken scheduleRequest..Méthode = httpPost scheduleRequest..ContentType = "application/json" scheduleRequest..Contenu = ChaîneVersUTF8(paramvariable) scheduleResponse is restResponse = RESTEnvoie(scheduleRequest) Info(scheduleResponse.Contenu,decodeResponse.id) END FIN et je but sur ce message

A vrai dire, je ne maîtrise pas grand chose sur le json. Une aide me rendrais énormément service car cela fait maintenant une semaine que je plante Merci beaucoup |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.002 mensajes |
|
| Publicado el 24,julio 2020 - 07:45 |
Bonjour,
Remplace ta ligne
cMyRequest..Contenu = ChaîneVersUTF8(paramvariable) scheduleRequest..Contenu = ChaîneVersUTF8(paramvariable) par
cMyRequest..Contenu = ChaîneVersUTF8(VariantVersJSON(paramvariable)) scheduleRequest..Contenu = ChaîneVersUTF8(VariantVersJSON(paramvariable))
jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 9 mensajes |
|
| Publicado el 25,julio 2020 - 07:07 |
Merci Jordan pour ta réponse. j'ai remplacé ces deux lignes comme tu me l'a demandé. Mais je reçois le message comme le montre la capture d'écran. Je pense bien que c'est à cause de la version de la version de windev (windev 20)

|
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.002 mensajes |
|
| Publicado el 25,julio 2020 - 12:40 |
Bonjour,
et comme ca ?
paramvariable est Variant tabRecipient est un variant tabRecipient.phone = "22506077966" paramvariable.step=Null paramvariable.sender= "L.TECH" paramvariable.name= "Ma CAMP" paramvariable.campaignType= "SIMPLE" paramvariable.recipientSource= "CUSTOM" paramvariable.groupId=Null paramvariable.filename=Null paramvariable.saveAsModel=False paramvariable.destination= "NAT" paramvariable.message="test sms" paramvariable.emailText=Null paramvariable.recipients[1]=tabRecipient paramvariable.sendAt[1]= Null paramvariable.dlrUrl= "" paramvariable.responseUrl= "" sToken est chaîne="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" cMyRequest is restRequest scheduleRequest is restRequest cMyRequest..URL = "https://api.letexto.com/v1/campaigns" cMyRequest..Entête["Authorization"] = "Bearer "+sToken
cMyRequest..Méthode = httpPost cMyRequest..ContentType = "application/json" cMyRequest..Contenu = ChaîneVersUTF8(VariantVersJSON(paramvariable)) cMyResponse is restResponse = RESTEnvoie(cMyRequest) Info(cMyResponse.Contenu) SI (cMyResponse..StatusCode) = 200 ALORS Info("Erreur") SINON IF ErreurDétectée THEN Error(ErrorInfo(errComplet)) ELSE decodeResponse est Variant =JSONVersVariant( cMyResponse..Content) scheduleRequest..URL = "https://api.letexto.com/v1/campaigns/"+decodeResponse.id+"/schedules" scheduleRequest..Entête["Authorization"] = "Bearer"+sToken scheduleRequest..Méthode = httpPost scheduleRequest..ContentType = "application/json" scheduleRequest..Contenu = ChaîneVersUTF8(VariantVersJSON(paramvariable)) scheduleResponse is restResponse = RESTEnvoie(scheduleRequest) Info(scheduleResponse.Contenu,decodeResponse.id) END FIN
Jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 13 mensajes |
|
| Publicado el 27,julio 2020 - 16:26 |
Essaie ceci : STrecipients est une structure 'phone' est une chaîne FIN
STJSON est une structure step est une chaîne sender est une chaîne name est une chaîne campaignType est une chaîne recipientSource est une chaîne groupId est une chaîne filename est une chaîne saveAsModel est un booléen destination est une chaîne message est une chaîne emailText est une chaîne recipients est un tableau de STrecipients dlrUrl est une chaîne responseUrl est une chaîne sendAt est un tableau de chaines FIN
sParametres est un STJSON
sParametres.step = null sParametres.sender = "L.TECH" sParametres.name = "Ma CAMP" sParametres.campaignType = "SIMPLE" sParametres.recipientSource = "CUSTOM" sParametres.groupId = null sParametres.filename = null sParametres.saveAsModel = false sParametres.destination = "NAT" sParametres.message = "messages" sParametres.emailText = null TableauAjouteLigne(sParametres.recipients) sParametres.recipients[1].phone = "22506077966" sParametres.dlrUrl = "" sParametres.responseUrl = "" TableauAjouteLigne(sParametres.sendAt)
cMyRequest..Contenu = ChaîneVersUTF8(VariantVersJSON(sParametres))
En espérant que cela te soit utile. Rudy Nyembo |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|