Obtenir un message SOAP avant de l'envoyer au WebService dans .NET
Je suis d'appel externe HTTPS webservice.
Afin de vérifier ce qui est faux, le propriétaire a besoin de la requête SOAP je suis d'envoi.
J'ai un site web de référence et le proxy généré classe générée par rapport à 2008...
Est-il un moyen de voir le message SOAP juste avant de l'envoyer?
Je suis en train de penser à certains .net code... parce que les Renifleurs j'ai essayé de ne pas "voir" le webservice invocation ne sais pas pourquoi.
source d'informationauteur Romias
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez besoin est un SoapExtension. Il y a assez peu de bons exemples ici:
Comment puis-je accéder à la réponse SOAP
L'obtention de CRU de Savon de Données à partir d'un site Web de Référence Client de l'exécution dans ASP.net
XML Parser erreur lors du traitement de la réponse SOAP
L'un des articles liés à:
http://msdn.microsoft.com/en-us/magazine/cc164007.aspx
Aussi une recherche pour: https://stackoverflow.com/search?q=SoapExtension
Vous pouvez simplement sérialiser l'objet de la requête, avant de subtmit, comme ceci:
Vous pouvez utiliser IClientMEssageInspector et IEndpointBehavior pour remplir cette. J'ai trouvé à l'aide de cette façon peut capturer l'exacte requête soap probable que le violon:
Créer une classe de ce genre dans le même projet:
Ensuite, vous pouvez l'appeler comme les suivantes:
Lorsque vous appelez la méthode de service, il exécutera automatiquement l'intercepteur et imprimer la sortie. À l'aide de cette façon, vous pouvez aussi manipuler le savon message avant de l'envoyer au serveur!
Si vous travaillez dans un environnement plus restreint et n'ont pas le luxe de l'utilisation d'une application comme Fiddler, vous pouvez effectuer les opérations suivantes:
using (var reader = new System.IO.StreamReader(Request.InputStream))
{
result = reader.ReadToEnd();
}
Ce n'est pas un idéal ou un jolie solution, mais si vous travaillez dans un modérément environnement restreint, il fait le travail.