4 votes

Comment vérifier quel xml est envoyé pendant la demande de service web ?

Existe-t-il un moyen d'obtenir le XML brut généré par une requête SOAP en .net ? Je ne sais pas comment poser cette question de manière précise, mais voici ce qu'il en est

J'ajoute une référence web et appelle une méthode. Existe-t-il un moyen de savoir quel XML est envoyé ? C'est uniquement à des fins de débogage, donc un moyen rapide et sale est suffisant.

P.S. SSL est utilisé, donc le snipping ne sert à rien ici.

5voto

AnthonyWJones Points 122520

Je fais généralement ce genre de choses avec Fiddler .

Collez ceci dans le fichier de configuration :-

<system.net>
    <defaultProxy enabled="true">
        <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
    </defaultProxy>
</system.net>

Lancez fiddler et vous devriez être en mesure de surveiller tout le trafic http provenant de votre application. Mettez juste enabled à false avant de fermer fiddler.

3voto

Jean-Francois Points 737

Vous pouvez créer un SoapExtensionAttribute et l'appliquer à vos méthodes de service web.

Créez une classe qui est dérivée de SoapExtensionAttribute.

Créez une autre classe qui dérive de SoapExtension.

Le Type de votre SoapExtensionAttribute doit être le type de votre SoapExtension.

Une fois que vous êtes dans la SoapExtension, vous avez accès au moment où les données ont été sérialisées/désérialisées.

Voici les 4 étapes spécifiques :

SoapMessageStage.BeforeSerialize
SoapMessageStage.AfterSerialize           *
SoapMessageStage.BeforeDeserialize        *
SoapMessageStage.AfterDeserialize

Les étapes marquées d'un astérisque (*) sont celles où vous souhaitez accéder au flux. A partir de là, vous pouvez enregistrer le xml qui entre et sort de votre service web.

C'est ce que nous faisons ici, cela fonctionne parfaitement.

Voici un lien qui explique plus en détail : http://progtutorials.tripod.com/soapext.htm

J'espère que cela vous a aidé.

1voto

gbjbaanb Points 31045

le moyen le plus simple d'obtenir toutes les données envoyées sur le réseau est d'installer wireshark et fouiner dans les données brutes lorsqu'elles passent par la pile réseau. L'avantage est que vous voyez réellement ce qui est envoyé, avant qu'une autre application ou un autre service ne puisse le modifier. Il y a beaucoup de exemples et blogs sur le web.

Vous pouvez également l'utiliser pour rejouer les requêtes soap . Il est également idéal pour d'autres réseaux - pas seulement SOAP, mais aussi HTTP et TCP normaux, et même les communications série.

0voto

Vous pouvez essayer : http://www.pocketsoap.com/tcpTrace/ .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X