Exemple de consommation du Webservice Météo Avec Windev
5 Avril 2019
Bonjour tout le monde,
Comme indiqué sur le titre de cet article, je vais vous présenter une technique pour récupérer la météo d’une ville précise via les webservices sous Windev.
Cette astuce peut s’utiliser sur les autres environnements de développement de l’AGL de PCSoft, je cite sur Webdev et Windev Mobile.
Le Webservice que j’ai manipulé et que je juge simple à consommer est du site https://openweathermap.org parmi les centaines des webservices se trouvant sur la toile.
Donc tout d’abord, il vous faut vous rendre vers ce site et créer un compte, ce dernier sera votre point d’identification auprès des services du dit site.
Remplissez les champs nécessaires et complétez votre inscription
Le site vous générera une clé par défaut à utiliser avec la possibilité de créer d’autres nouvelles.
Cette clé sera notre laisser-passer pour toute requête du service météo à travers notre Webservice.
Dans le lien ci-dessous, Vous trouverez toutes les informations nécessaires et les différentes syntaxes pour manipuler le web service météo.
Mise en pratique du service météo (current weather) sur notre application Windev, Webdev ou Windev mobile.
Pour mon cas j’ai opté pour le concept de créer une fenêtre interne que je vais appeler à partir d’un champ TDB (tableau de bord).
Voilà, j’ai créé mes différents champs dont j’aurai besoin pour afficher tous les services que je souhaite visualiser.
Voici les différents champs avec leurs libellés
Et voici les plans utilisés
Et voici un aperçu du code que j’ai implémenté sur ma fenêtre interne (FI_METEO)
Voici le résultat après la consommation du Webservice
*PS: Juste une petite remarque au sujet des valeurs récupérées - La vitesse du vent s'exprime en Km/h et pas comme j'ai indiqué sur mon widget (en %) - La même chose pour les précipitations, devront s'exprimer en mm et pas en %.
A la fin, je vous laisse avec le code source utilisé pour l’adapter suivant vos besoins.
Bon développement avec Windev
// Déclarations globales de la fenêtre interne FI_METEO
PROCÉDURE MaFenêtre()
stCondMeteo est une Structure
sCodeCondMeteo est une chaîne
sLibCondMeteo est une chaîne
FIN
bpremierChargement est un booléen = Vrai
MastCondMeteo est une stCondMeteo
sMonTabCondMeteo est un tableaudestCondMeteo
TableauSupprimeTout(sMonTabCondMeteo)
plAlimenterTabCondMeteo()
//---------- Fin d’initialisation de FI_METEO
IMG_MAJ = IMG_MAJ_GO
sCodeMeteo,sDonneeXML est une chaîne
ErreurHTTP est une chaîne
HLitPremier(Societe,SOCLEUNIK)
SI HEnDehors(Societe) ALORS HRAZ(Societe)
pVille est une chaîne = SansEspace(Societe.VILLE)
SI pVille~="" ALORS pVille ="Paris"
SI HTTPRequête("http://api.openweathermap.org/data/2.5/weather?q="+pVille+"&mode=xml&units=metric&APPID=41780205631dd80057c90440e632ba75") ALORS
sResultat est chaîne = HTTPDonneRésultat(httpRésultat)
FIN
SI Taille(sResultat) = 0 ALORS
// Il y a eu une erreur du serveur Web,
// le détail de l'erreur est dans l'entête de la page
ErreurHTTP = HTTPDonneRésultat(httpEntête)
Erreur(ErreurHTTP)
LIB_Etat = "Problème de connexion avec le service Météo!!"+RC+"Réessayer plus tard..."
FIN
Trace(sResultat)
XMLTermine("CdeXML")
// Création du document XML
XMLDocument("CdeXML", sResultat)
SI ErreurDétectée = Vrai ALORS
Erreur("Erreur lors de la création du document XML")
Possible d'avoir le projet WinDev lui-même ?<br />
Car il y a des éléments qui restent sans explication.<br />
De même le code que vous avez donné est incomplet...
Bonjour Mexence,<br />
Je pense pas qu'il reste des éléments sans explication. Ce qui manque dans le code source se trouve bien sur les captures au dessus. Sinon, pour le projet, la partie évoquée sur le blog, je l'ai extrait d'un autre projet dont j'ai pas le droit de le partager.
L
laranjeira
31/12/2020 11:20
bonjour,<br />
je pence qu'il manque des information dans votre code, ont ne vois pas toute les procédure local