|
|
|
|
|
- Propriétés spécifiques à la description des variables de type wsRéponse
- Fonctionnement
wsRéponse (Type de variable) En anglais : wsResponse
Le type wsRéponse permet d'obtenir : - le code source XML complet de la réponse d'un Webservice.
- la valeur des différentes parties de la réponse d'un Webservice (cas des Webservices renvoyant plusieurs réponses).
Les caractéristiques de ce type peuvent être définies et modifiées à l'aide de différentes propriétés WLangage. Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Pour un Webservice qui renvoie 2 réponses (et pas une réponse structurée)
wsRep est un wsRéponse = WSProcedure() Trace(wsRep["partie1"].sousElement1) Trace(wsRep["partie2"].sousElement2) Pour un Webservice dont on veut récupérer tout le XML de réponse (et le XML envoyé)
// WSDL du Webservice : // http://www.webservicex.net/globalweather.asmx?WSDL  // Variable du type du paramètre de la fonction du Webservice paramGetWeather est un GlobalWeather.GetWeather paramGetWeather.CityName = "Paris-Aeroport Charles De Gaulle" paramGetWeather.CountryName = "France"  // Variable du type de retour de la fonction du Webservice resGetWeatherResponse est un GetWeatherResponse // Au lieu de faire : // resGetWeatherResponse = GetWeather(paramGetWeather) // Utilisation d'une variable "wsRéponse" pour récupérer tout le XML résultat et // une variable "wsRequête" pour récupérer tout ce qui a été envoyé à la fonction du Webservice wsRep est un wsRéponse wsReq est un wsRequête // Possible de forcer le timeout HTTP de la requête : exemple HTTPTimeOut(10*1000) wsRep = GlobalWeather.GetWeather(wsReq,paramGetWeather) SI ErreurDétectée ALORS // Il est possible de récupérer tout le XML renvoyé avec : wsRép.SourceXML Erreur(ErreurInfo(), ... "------------------- Détails  de la requête XML envoyée : ", wsReq.SourceXML, ... "------------------- Détails de la réponse XML reçue : ", wsRep.SourceXML)  SINON // Puis affectation à la variable du type de retour de la fonction du Webservice resGetWeatherResponse=wsRep.Valeur // Si le résultat n'est pas celui attendu, // il est possible d'avoir tout le XML résultat avec wsRép.SourceXML //trace(resGetWeatherResponse.GetWeatherResult..Valeur)  xmlMeteo est un xmlDocument = XMLOuvre(resGetWeatherResponse.GetWeatherResult..Valeur, ... depuisChaîne) SI ErreurDétectée ALORS Erreur(ErreurInfo()) SINON SI xmlMeteo.CurrentWeather.Status..Texte~="Success" ALORS Info("Ville : " + xmlMeteo.CurrentWeather.Location, ... "Heure : " + xmlMeteo.CurrentWeather.Time, ... "Vent : " + xmlMeteo.CurrentWeather.Wind, ... "Visibilité : " + xmlMeteo.CurrentWeather.Visibility, ... "Température : " + xmlMeteo.CurrentWeather.Temperature, ... "Point de rosée : " + xmlMeteo.CurrentWeather.DewPoint, ... "Humidité : " + xmlMeteo.CurrentWeather.RelativeHumidity, ... "Pression : " + xmlMeteo.CurrentWeather.Pressure) SINON Erreur(resGetWeatherResponse.GetWeatherResult, ... "---------------------- Détails de la réponse XML reçue :", wsRep.SourceXML) FIN FIN FIN Remarques Propriétés spécifiques à la description des variables de type wsRéponse Les propriétés suivantes peuvent être utilisées pour manipuler une variable de type wsRéponse : | | | Nom de la propriété | Type manipulé | Effet |
---|
PartieRéponse | Tableau | Permet d'obtenir le code XML correspondant à la réponse spécifiée. Il est également possible d'utiliser directement la notation : Nom_Variable_wsRéponse["Nom_de_la_réponse"] Cette propriété est disponible en lecture seulement. | SourceXML | Binaire / Buffer | Source XML reçue du serveur. Cette propriété est disponible en lecture seulement. | Valeur | Chaîne de caractères | Renvoie le code XML correspondant à la première partie de la réponse. Cette propriété est disponible en lecture seulement. |
Attention : Si le Webservice ne renvoie qu'une seule réponse, il est conseillé de conserver la syntaxe suivante : res est un TypeRetour = WSProcédure() Fonctionnement Le type wsRéponse permet d'avoir le source XML complet de la requête envoyée pour la consommation du Webservice. La fonction SOAPPrépare donne déjà l'information dans le cas général, mais pas lorsque le Webservice nécessite : En pratique, l'appel traditionnel d'une fonction : RéponseWebservice = FonctionWebservice(Param1, Param2) pourra être remplacé par : MaRequête est un wsRequête RéponseWebservice = FonctionWebservice(MaRequête, Param1, Param2) Il est alors possible d'avoir dans un buffer le source XML intégral de la requête avec le code suivant : Cette fonctionnalité est parfois utile en phase de mise au point et nécessaire pour obtenir certaines certifications.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|