2010-07-28 6 views
1

Comment puis-je obtenir l'en-tête SOAP de ma fonction de service Web en tant que xml?Comment obtenir les en-têtes SOAP en XML?

J'ai besoin d'une version XML de mon en-tête SOAP pour utiliser comme exemple pour quelqu'un avec des en-têtes SOAP cassés. Il utilise un langage de programmation différent, mais comme les en-têtes sont envoyés en XML, nous espérons pouvoir les comparer facilement. J'utilise C# et ToString() me donne juste le nom de l'objet. Après googling, j'ai essayé Fiddler, mais ça n'a rien attrapé, et les Extensions SOAP sont trop compliquées pour ce qui semble être une tâche vraiment simple.

Répondre

4

Il n'y a pas de moyen facile de le faire avec les services Web ASMX. Si vous utilisiez WCF, il serait trivial d'activer la journalisation des messages. Fiddler devrait tout attraper, et cela vaut la peine d'apprendre à l'utiliser. Assurez-vous de consulter la documentation en ligne pour savoir comment capturer le trafic de localhost vers localhost.

+0

+1 - J'utilise Fiddler pour donner des exemples aux développeurs SAP. –

+0

ok, je pense que j'ai compris comment capturer le trafic pour localhost, mais je ne suis toujours pas sûr d'où je suis censé chercher le SOAP xml – thchaver

+0

je ne comprends pas. C'est dans la circulation. Demande et réponse Jouez avec les onglets jusqu'à ce que vous le trouviez. –

1

La réponse acceptée à this question mentionne que vous pouvez capturer du trafic vers un service Web en utilisant soapUI. Vous pouvez l'utiliser comme un proxy ou un tunnel HTTP afin de capturer les messages envoyés à votre service Web. Je pense que l'utiliser en mode HTTP Tunnel est logique, car alors vous n'aurez rien à faire avec votre client si ce n'est pointer l'URL vers soapUI au lieu de votre service actuel.

The soapUI website talks about the SOAP Monitor feature, mais je ne pense pas que cela offre une bonne explication pour la configuration du tunnel HTTP.

Voici les étapes (basé sur soapUI 3.0.1):

  1. Ouvrir l'interface utilisateur de savon
  2. créer un nouveau projet soapUI ... 2.1 Donnez un nom au projet 2.2 Entrez le chemin à votre WSDL de services (http://localhost/.../YourService.asmx?WSDL)
  3. Faites un clic droit sur le projet que vous venez de créer
  4. Sélectionnez "Launch Monitor SOAP"
  5. Choisissez « HTTP Tunnel "
  6. Indiquez un numéro de port inutilisé pour" Port ". La valeur par défaut fonctionnera probablement.
  7. Entrez l'URL de votre service Web dans "Définir le point de terminaison pour le tunnel HTTP"
  8. Si vous utilisez SSL, vous devrez peut-être remplir certains des autres champs; sinon, cliquez sur OK
  9. Le tunnel HTTP est en cours d'exécution. Il vous suffit donc de reconfigurer un client pour utiliser le tunnel HTTP au lieu du service Web proprement dit. Donc, si votre service actuel est "http://localhost:1234/YourService.asmx", reconfigurez votre client pour qu'il utilise "http://localhost: {Port}/YourService.asmx" où {Port} est le numéro que vous avez entré à l'étape 6.
  10. Maintenant, il suffit de lancer votre client normalement. Vous verrez le trafic connecté dans l'interface soapUI. Sélectionnez un message et cliquez sur le bouton "Contenu du message" en bas de la fenêtre pour voir le message SOAP réel. +1 -
Questions connexes