XML From a Web Service Call

2020-07-06 07:15发布

问题:

Visual Studio makes calling a web service easy, trying to figure out what is going on under the covers is difficult.

How can I see the actual XML generated from my .Net app when making a call to a web service?

回答1:

tools like tcptrace or Fiddler can help.

few troubleshooting links:

Tracing WCF with TcpTrace

Using Fiddler and Excel 07 to debug web services

Fiddler Can Make Debugging Easy



回答2:

MSDN Example code that implements a TraceExtension for SOAP; You can use as-is or modify to log in whatever you want (I used a DB and kept it not only for debugging but to archive all communication for later on).



回答3:

For SOAP web service calls, I've found SoapUI to be extremely helpful. It can connect to a WSDL to get the method definitions, create skeleton envelopes to invoke those methods, and you can see the full-fledged result after invocation.



回答4:

Outside of Visual Studio, you can use the Fiddler tool to see exactly what is contained in requests and responses.

Inside Visual Studio, one thing you could do is write a DataSet out to a file.

myDataSet.WriteXml(filename);


回答5:

Here's another example of how you can do that within Visual Studio. All this does is grab the response from the web service and save it to a file you specify:

Dim url As String = "http://web.service.com/"
Dim request As WebRequest = WebRequest.Create(url)
Dim response As WebResponse = request.GetResponse()
Dim stream As Stream = response.GetResponseStream()

Dim xmlDoc As XmlDocument = New XmlDocument
xmlDoc.Load(stream)
xmlDoc.Save("C:\Temp\foo.xml")


回答6:

The suggestion to use Fiddler was enough for me to get my IT team on board. They already had a copy of a similar program WireShark installed on the webserver.

Not being very network savvy, I initially thought I could watch for requests made from my PC to the webservice. That didn't work. Monitoring requests as they came into the webserver did give me the stucture of the http header and the soap envelope.

Thanks for all the responses.