Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

WebDev 21 : Les web services

Récupérer et traiter les résultats

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez maintenant apprendre à récupérer et à traiter les informations reçues depuis le web service.
07:23

Transcription

Maintenant que nous savons récupérer la liste des villes d'un pays grâce à ce Web service, Nous allons récupérer la météo d'une ville sélectionnée. Sur le même principe, on va commencer par appeler le Web Service pour récupérer la météo d'une ville et afficher le résultat dans le champ qui est ici. Voir ce que ça donne et comment on peut l'interpréter. Donc, je vais ajouter un nouveau bouton. Donc, je vais déplacer le champ ici. Le bouton, je vais le mettre là et je vais l'appeler météo. Tout simplement. On va aller dans le code. Vous allez voir que le code va pas mal ressembler à celui de l'autre bouton. Ici, la fonction que nous allons utiliser s'appelle GetWeather. Je ne l'invente pas, comme d'habitude. Vous voyez qu'elle attend des paramètres de type GetWeather. Si je fais un Ctrl + w pour afficher l'explorateur de projet, vous voyez qu'elle est ici, GetWeather(). Qu'elle atteint effectivement un paramètre de type GetWeather, avec ses deux propriétés. Donc, on va commencer par créer un objet ou la variable si vous préférez, qui va contenir ses deux propriétés. On va appeler ça Paramètres, on va faire comme pour l'autre bouton. Paramètres est un GetWeather. Ensuite, on va définir les deux propriétés de ce Paramètres, qui sont CountryName et CityName. CountryName, il faut mettre le même que celui du premier bouton, évidemment, puisque si on récupère les villes du Canada, il faut demander la météo du même pays. Et paramètres.CityName= alors là par contre, ça sera ce qui aura été sélectionné dans la COMBO. Alors attention, vous le savez certainement, par défaut une COMBO ne renvoie pas à ce qu'on a sélectionné mais renvoie le numéro de l'élément. C'est à dire que si la COMBO contient par exemple dix éléments et que vous avez choisi le deuxième, elle renvoie 2, tout simplement. Donc, pour récupérer ce qui s'affiche dans la COMBO, on va utiliser la propriété ValeurAffichée. Maintenant, je peux donc appeler le webservice, quand je vais mettre le résultat dans la variable Retour. Donc, SAI_Retour=GetWeather() Et je lui passe Paramètres. Voilà, on va déjà tester ça et voir ce que ça donne. Attention, il n'y a pas de contrôle d'erreurs donc il y a intérêt à faire les choses dans l'ordre. Bien récupérer la liste des villes d'abord, évidemment, pour remplir la COMBO. On va prendre une ville, je ne connais pas ces villes mais on va en prendre une au hasard, celle-ci. Et on va cliquer sur météo. Voilà la météo de la ville. Vous voyez, c'est un petit fichier XML qui contient donc différentes balises. Comme je vous le disais, vous avez l'heure, le vent, la visibilité, etc. la pression. Donc, à tous ces éléments-là, on va essayer de faire correspondre un champ pour afficher des informations de manière plus claire. Donc, il nous faut un champ pour chaque balise que vous avez ici. Nous allons donc créer ces champs. Pour aller plus vite, je vais les copier/coller depuis un exemple que j'ai. Vous allez les voir apparaître ici, vous pourrez donc reproduire les mêmes champs. Donc, les voici. Je vais les placer ici, ce sont tout bêtement des champs texte correspondants aux différentes valeurs, aux différentes balises envoyées par le Web Service. Vous pouvez reprendre les mêmes ou qu'une partie, comme vous voulez. On va donc aller maintenant dans le bouton météo et on va traiter le fichier de retour. Comme on l'a fait précédemment pour aller chercher les différentes balises. Ici, on a juste un petit problème un peu particulier. C'est que dans le fichier renvoyé, je vais vous montrer ça. On a un en-tête, j'ai été un peu vite. Donc, je prends une ville quelconque. On a dans l'en-tête utf-16. Normalement, windev est censé voir ce format d'encodage et lire correctement le fichier. Dans la pratique, ça ne fonctionne pas. Bug ou autre, je ne sais pas. Toujours est-il que pour résoudre le problème, le plus simple est de remplacer cet utf-16 par un utf-8. Donc ici, je vais écrire une petite ligne toute simple. SAI_Retour = et je vais faire un Remplace. Donc en prenant SAI_Retour lui-même comme source. Je vais remplacer tout simplement utf-16 par utf-8. Voilà. Ce n'est peut-être la pas la meilleure méthode pour le faire mais ça fonctionne, je peux vous l'assurer. Maintenant, je vais faire un XMLDocument, comme on a fait précédemment. C'est justement cette fonction XMLDocument qui ne fonctionne pas si on ne fait pas cette conversion. Donc, sur SAI_Retour, transforme donc en documetnt XML. Voilà, je ferme la parenthèse. Je n'ai pas besoin de parcourir quoi que ce soit puisque c'est un document qui n'a pas une série d'éléments qui se répètent. Ce sont simplement des balises toutes différentes les unes des autres. Je vais me contenter de les lire, tout simplement. On va utiliser une autre fonction qu'on n'a pas encore vu qui s'appelle XMLLit tout bêtement. Donc, je vais remplir tous mes champs avec la balise correspondante. Par exemple, je vais prendre dans l'ordre où ils apparaissent. XMLHeure=XMLLit Donc, dans le document XML, il n'y a pas de problème. Et la balise correspondante s'appelle Time. Attention là aussi à la casse. Etc. Donc SAI, le suivant sera Humidité, par exemple. =XMLLit. Dans le document XML, la balise s'appelant dans le cas de l'humidité, RelativeHumidity. Pour ça, il faut consulter le fichier XML qu'on récupère pour le savoir. Voilà, je vais faire les derniers. Voilà, je viens de faire les autres, vous pourrez les copier sur le même principe. Et je termine, c'est le cas de le dire, par un XMLTermine pour fermer le document. Donc, on va tester tout ça, ça devrait fonctionner à merveille. Espérons-le. Liste des villes, du Canada, n'oublions pas. On va en prendre une. Il y en a beaucoup plus qu'en France apparemment dans cette liste. Alors, on va chercher le Quebec. Donc, Lieu ne s'est pas rempli. Alors, soit l'information n'y est pas, Location, pourtant elle y est. Ça, on peut vérifier assez facilement. Je l'ai oubliée, tout simplement. Donc ça, c'est assez simple à corriger. XMLLit("DocXML, et c'est Location, comme on l'a vu. Vous voyez, sur ce principe-là, vous pouvez tous les remplir. Allons-y pour un dernier test. La première ville sera très bien, et ça fonctionne à merveille. Donc là, vous voyez qu'on a récupéré des données de manière un peu différente, avec d'autres complexités, des paramètres dans les fonctions, etc... Une petite conversion. Et vous avez donc pu utiliser un Service Web un peu plus élaboré.

WebDev 21 : Les web services

Créez et utilisez les web services et les services REST avec WebDev. Donnez l’accès à vos données et à vos services aux applications externes qui devront les utiliser.

1h59 (21 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
WebDev WebDev 21
Spécial abonnés
Date de parution :13 avr. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !