mercredi 16 juin 2010

Tracer les flux d’appel à des Web service avec Ms Soap Tool Kit

Parfois quand on travaille avec les webservice on voudrait voir les XML qui sont échangé pour plusieurs raison :

- Debugging
- Certains outils (comme en .net) font ignorer complètement le coté XML des WebService et parfois celà peut amener à des bugs/problèmes incompréhensibles.
- Si on affiche les données en XSLT ça peut aider de voir la structure du XML.
- Voir les entête HTTP (surtout celles que l'on créer).

Pour celà MS a créer un super outil qui fait parti du Soap Tool Kit, Téléchargeable ici :

http://www.microsoft.com/downloads/details.aspx?familyid=c943c0dd-ceec-4088-9753-86f052ec8450&displaylang=en

Donc il faut installer ça. Puis aller dans Binaries puis lancer MSSoapT.exe

Dans ce logiciel , il faut cliquer sur File - > New Trace - > Formatted Trace

Une fenetre s'affiche



Dans local post, 8080 va très bien à moins qu'un logiciel écoute actuellement sur ce port (dans ce cas la il faut mettre autre chose).

Dans destination host il faut mettre le nom de domaine du serveur (ex : "monserveur.com").

Dans destination port , le port sur lequel écoute le serveur web du serveur (80 en général).

Puis OK.

Ensuite il faut aller changer l'endroit ou est configuré l'adresse ou sont envoyés les requêtes (par exemple web.config pour un appli asp.net).

A cet endroit il faut changer le nom de domaine du serveur avec l'adresse sur laquelle écoute mssoapt.exe (ici "localhost:8080")
Par exemple "http://monserveur.com/webservice.asmx" va devenir "http://localhost:8080/webservice.asmx".

Il faut lancer son programme client qui va faire un appel webservice, mssoapt.exe va simplement recevoir le message, le montrer, l'envoyer au serveur, recevoir la réponse, la montrer et la renvoyer au client, tout comme un proxy. Et ça donne ce genre de chose :



Pour récupérer le xml non formaté, il faut faire click droit sur un des cadre et clicker sur "Afficher la source" (les deux caddre sont des cadre Internet Explorer).

Attention à ne pas oublier de remettre l'adresse du serveur correctement. Et il ne faut pas utiliser cette technique en production :
- Il n'y a aucun moyen d'appliquer des filtre donc si il y a du traffic ça peut faire beacoup
- Le logiciel ne marche pas en multi thread je pense donc ça peut créer un goulot d'étranglement.

Aucun commentaire:

Enregistrer un commentaire