tags:

views:

538

answers:

3

Does anyone know if Fiddler can display the raw SOAP messages for ASMX web services? I'm testing a simple web service using both Fiddler2 and Storm and the results vary (Fiddler shows plain xml while Storm shows the SOAP messages). See sample request/responses below:

Fiddler2 Request:

POST /webservice1.asmx/Test HTTP/1.1
Accept: */*
Referer: http://localhost.:4164/webservice1.asmx?op=Test
Accept-Language: en-us
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; MS-RTC LM 8)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost.:4164
Content-Length: 0
Connection: Keep-Alive
Pragma: no-cache

Fiddler2 Response:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: Thu, 21 Jan 2010 14:21:50 GMT
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 96
Connection: Close
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/"&gt;Hello World</string>

Storm Request (body only):

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&gt;
  <soap:Body>
    <Test xmlns="http://tempuri.org/" />
  </soap:Body>
</soap:Envelope>

Storm Response:

 Status Code: 200
 Content Length : 339
 Content Type: text/xml; charset=utf-8
 Server: ASP.NET Development Server/9.0.0.0
 Status Description: OK

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
  <soap:Body>
    <TestResponse xmlns="http://tempuri.org/"&gt;
      <TestResult>Hello World</TestResult>
    </TestResponse>
  </soap:Body>
</soap:Envelope>

Thanks for any help.

A: 

Fiddler doesn't know anything about SOAP. It's showing you what's on the wire.

John Saunders
Thanks John. Since SOAP is just XML, the "raw" SOAP message that is sent over the wire should be the XML displayed in the request/response messages as shown by Storm. Seems like Fiddler is stripping it out which I didn't expect. I've seen Fiddler display the actual soap for WCF services so not sure why ASMX services would be any different...
outer join
Fiddler isn't stripping anything, I guarantee you. You're not seeing SOAP because it's not there. You used the test form to POST a message, which does not use SOAP!
John Saunders
+1  A: 

The response is different because the requests are different. Your Fiddler2 request contains no content and no SOAP headers, so the response it gets is the standard XML response.

Your Storm request, on the other hand, is posting a SOAP request body (and, I assume, SOAP request headers despite them not being included). Because the webservice was called using SOAP, the response will be SOAP.

Richard Szalay
A: 

John Saunders you are a genius - I had this exact same problem which was annoying me yet it is so obvious once you see what the problem is, thanks!

Dave