| |
Membre enregistré 87 messages Popularité : +4 (4 votes) |
|
Posté le 07 mars 2018 - 16:18 |
Bonjour,
J'utilise un restRequête et un restRéponse pour interroger un webservice Prestashop. J'arrive à avoir un résultat, cependant comment faire pour récupérer les données précises :
Voici mon code :
numCmd est une chaîne= "" numCmd = "20"
rr_get est une restRequête
rr_get..Méthode = httpGet rr_get..URL = sUrl+numCmd rr_get..Utilisateur = key rr_get..MotDePasse = ""
rep est un restRéponse = RESTEnvoie(rr_get)
SI rep.CodeEtat = "200" ALORS Info(rep.Contenu) SINON Info("Code état : " + rep.CodeEtat + " = " + rep.DescriptionCodeEtat)
FIN
Voici le contenu retourné :
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <order> <id> <![CDATA[ 20 ]]> </id> <![CDATA[ 11 ]]> </current_state> <module> <![CDATA[ ps_wirepayment ]]> </module> <invoice_number> <![CDATA[ 6 ]]> </invoice_number> <invoice_date> <![CDATA[ 2018-02-06 11:08:02 ]]> </invoice_date> <delivery_number> <![CDATA[ 0 ]]> </delivery_number> <delivery_date> <![CDATA[ 0000-00-00 00:00:00 ]]> </delivery_date> <valid> <![CDATA[ 1 ]]> </valid> <date_add> <![CDATA[ 2018-01-30 15:04:03 ]]> </date_add> <date_upd> <![CDATA[ 2018-02-06 11:08:02 ]]> </date_upd> <shipping_number notFilterable="true"/> <id_shop_group> <![CDATA[ 1 ]]> </id_shop_group> <id_shop> <![CDATA[ 1 ]]> </id_shop> <payment> <![CDATA[ Transfert bancaire ]]> </payment> <recyclable> <![CDATA[ 0 ]]> </recyclable> <gift> <![CDATA[ 0 ]]> </gift> <gift_message/> <mobile_theme> <![CDATA[ 0 ]]> </mobile_theme> <total_discounts> <![CDATA[ 0.000000 ]]> </total_discounts> <total_discounts_tax_incl> <![CDATA[ 0.000000 ]]> </total_discounts_tax_incl> <total_discounts_tax_excl> <![CDATA[ 0.000000 ]]> </total_discounts_tax_excl> <total_paid> <![CDATA[ 196.600000 ]]> </total_paid> <total_paid_tax_incl> <![CDATA[ 196.600000 ]]> </total_paid_tax_incl> <total_paid_tax_excl> <![CDATA[ 184.000000 ]]> </total_paid_tax_excl> <total_paid_real> <![CDATA[ 196.600000 ]]> </total_paid_real> <total_products> <![CDATA[ 121.000000 ]]> </total_products> <total_products_wt> <![CDATA[ 121.000000 ]]> </total_products_wt> <total_shipping> <![CDATA[ 75.600000 ]]> </total_shipping> <total_shipping_tax_incl> <![CDATA[ 75.600000 ]]> </total_shipping_tax_incl> <total_shipping_tax_excl> <![CDATA[ 63.000000 ]]> </total_shipping_tax_excl> <carrier_tax_rate> <![CDATA[ 20.000 ]]> </carrier_tax_rate> <total_wrapping> <![CDATA[ 0.000000 ]]> </total_wrapping> <total_wrapping_tax_incl> <![CDATA[ 0.000000 ]]> </total_wrapping_tax_incl> <total_wrapping_tax_excl> <![CDATA[ 0.000000 ]]> </total_wrapping_tax_excl> <round_mode> <![CDATA[ 2 ]]> </round_mode> <round_type> <![CDATA[ 2 ]]> </round_type> <conversion_rate> <![CDATA[ 1.000000 ]]> </conversion_rate> <reference> <![CDATA[ VZJMVJXYL ]]> </reference> ...
Par exemple pour récupérer la référence commande qui se trouve tout à la fin ... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 24 messages Popularité : +4 (6 votes) |
|
Posté le 08 mars 2018 - 02:37 |
Bonjour,
Tu dois d'abord générer un document XML de référence où seul existe la structure comme un document vierge. Ce document XML doit être "référencé" par windev : Menu projet > projet > liste déroulante "Liste des éléments" Sélectionner "liste des éléments du projet" Dans la fenêtre qui s'ouvre cliquer sur le bouton "Ajouter" : indiquer le chemin où se trouve le document "nom_de_mon_fichier.xml".
Puis dans le code, tu déclares ce document comme suit :
DocRef_XML est un xmlDocument <Description="nom_de_mon_fichier.xml">
Après avoir interrogé ton WS, tu récupères les données de ta variable "rep.Contenu" comme suit :
DocRef_XML=XMLOuvre(rep.Contenu,depuisChaîne)
Ensuite tu accèdes à l'objet DocRef_XML qui sera structuré comme ton fichier, exemples : DocRef_XML.order.id:CDATA DocRef_XML.module.CDATA etc.
Pour le ":CDATA" je ne sais plus si cela fonctionne comme cela mais je pense que mon exemple va te donner une bonne piste à suivre.
-- Logiciel iWeb, pour aider les professionnels du SEO/SMO : Impulse-web.comMessage modifié, 08 mars 2018 - 02:38 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 87 messages Popularité : +4 (4 votes) |
|
Posté le 08 mars 2018 - 08:41 |
J'avais fait plusieurs réponses sur ce sujet, c'est bizarre pourquoi elles n'apparaissent plus ...?
numCmd est une chaîne= "" numCmd = "20"
rr_get est une restRequête
rr_get..Méthode = httpGet rr_get..URL = sUrl+numCmd rr_get..Utilisateur = sKey rr_get..MotDePasse = ""
rep est un restRéponse = RESTEnvoie(rr_get)
bRes est un booléen = XMLDocument("XmlPresta", rep.Contenu)
SI rep.CodeEtat = "200" ALORS Info(rep.Contenu) nomDoc est une chaîne = XMLLit("XmlPresta", "/prestashop/order/reference", "test") Info(nomDoc) SINON Info("Code état : " + rep.CodeEtat + " = " + rep.DescriptionCodeEtat) FIN
Je reçois la réponse de mon WebService dans mon rep.Contenu, je n'ai donc pas un document XML à proprement parlé ... Je suis obligé de passer par le référencement dans WD ?
Si oui je prend la réponse complète je la met dans un document Xml et je la référence comme tu me l'a indiqué ? Mais je dois interroger plusieurs pages de mon WebService, il faut que je fasse cette manipulation pour toutes les pages ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 948 messages Popularité : +30 (92 votes) |
|
Posté le 08 mars 2018 - 09:06 |
Coucou,
Tu ne prefere pas un retour en JSON ?
http://example.prestashop.com/api/products?output_format=JSON
-- In üs we trust
Chocolat en Suisse - #Foetus Kaeng Khiao Wan en Thailland - #ATR Kopi luwak en Indonesie - #Abracadabra |
| |
| |
| | | |
|
| | |
| |
Posté le 08 mars 2018 - 09:28 |
Juju a écrit :
J'avais fait plusieurs réponses sur ce sujet, c'est bizarre pourquoi elles n'apparaissent plus ...? numCmd est une chaîne= "" numCmd = "20"
rr_get est une restRequête
rr_get..Méthode = httpGet rr_get..URL = sUrl+numCmd rr_get..Utilisateur = sKey rr_get..MotDePasse = ""
rep est un restRéponse = RESTEnvoie(rr_get)
bRes est un booléen = XMLDocument("XmlPresta", rep.Contenu)
SI rep.CodeEtat = "200" ALORS Info(rep.Contenu) nomDoc est une chaîne = XMLLit("XmlPresta", "/prestashop/order/reference", "test") Info(nomDoc) SINON Info("Code état : " + rep.CodeEtat + " = " + rep.DescriptionCodeEtat) FIN Je reçois la réponse de mon WebService dans mon rep.Contenu, je n'ai donc pas un document XML à proprement parlé ... Je suis obligé de passer par le référencement dans WD ? Si oui je prend la réponse complète je la met dans un document Xml et je la référence comme tu me l'a indiqué ? Mais je dois interroger plusieurs pages de mon WebService, il faut que je fasse cette manipulation pour toutes les pages ?
Bonjour
XMLLit ne permet pas de lire les types CDATA tu va recevoir une chaine vide,
pour charger ton XML il faut faire comme suit et lire les infos comme Olivier le propose
DocRef_XML est un xmlDocument DocRef_XML = XMLOuvre(rep..Contenu, depuisChaîne) Info(DocRef_XML.order.id)
Bon dev
Marc Fastré www.marc-fastre.be |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 87 messages Popularité : +4 (4 votes) |
|
Posté le 09 mars 2018 - 08:49 |
Ok j'ai essayé mais sans succès :
DocRef_Xml est un xmlDocument DocRef_Xml = XMLOuvre(rep..Contenu,depuisChaîne) Info(DocRef_Xml.order.id.CDATA)
j'ai dans tous les cas une chaîne vide... Est ce que je suis obligée de référencer le document XML au préalable ? Comme ce n'est pas un document mais une chaîne ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 87 messages Popularité : +4 (4 votes) |
|
Posté le 09 mars 2018 - 08:50 |
Charly CANDO a écrit :
Je ne connais pas le JSON, je peux demander au WebService de me faire un retour en JSON? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 948 messages Popularité : +30 (92 votes) |
|
Posté le 09 mars 2018 - 10:38 |
Coucou,
Oui je crois que
?output_format=JSON
Fonctionne ^^
-- In üs we trust
Chocolat en Suisse - #Foetus Kaeng Khiao Wan en Thailland - #ATR Kopi luwak en Indonesie - #Abracadabra |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 87 messages Popularité : +4 (4 votes) |
|
Posté le 19 mars 2018 - 16:50 |
Désolée je viens juste d'essayer effectivement en écrivant exactement ça après l'URL j'obtiens bien du JSON, beaucoup plus lisible. Je vais utiliser cela merci. |
| |
| |
| | | |
|
| | |