.net – Get SOAP Message before sending it to the WebService in .NET


I'm calling an external HTTPS webservice.

In order to check what is wrong, the owner needs the SOAP request I'm sending.

I have a web reference and the generated proxy class generated by VS 2008…

Is there a way to see the SOAP message just before sending it?

I'm thinking in some .net code… because the Sniffers I tried didn't "see" the webservice invocation don't know why.

Best Solution

You can simply serialize the request object, before subtmit, like this:

var sreq = new SomeSoapRequest();

// ... fill in here ...

var serxml = new System.Xml.Serialization.XmlSerializer(sreq.GetType());
var ms = new MemoryStream();
serxml.Serialize(ms, sreq);
string xml = Encoding.UTF8.GetString(ms.ToArray());

// in xml string you have SOAP request