4

I've seen several questions about this already but none of the explicitly walkthrough how to capture a SOAP request to a WCF web service. They just say "go install Fiddler2". All I can get out of fiddler is normal HTTP request but I can never get the raw SOAP request for some reason Can anyone direct me to a tutorial that walks through this specific scenario?

.NET web application calls basicHTTP endpoint on WCF Web Service. I need to capture the raw SOAP request. I'm looking for a complete walkthrough because I'm not grokking this concept for some reason.

UPDATE

Here's what I get from Fiddler's raw view:

POST http://vm05/PNSWebTestVB/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://vm05/PNSWebTestVB/
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: vm05
Content-Length: 2272
Connection: Keep-Alive
Pragma: no-cache

__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUKLTM4MDU0OTMyOQ9kFgICAw9kFgICeQ8WAh4HVmlzaWJsZWcWBgIBDw8WAh4EVGV4dAXKATx0YWJsZSB3aWR0aD0nMTAwJSc%2BPHRyPjx0ZD48c3Ryb25nPlN0YXJ0ZWQ6PC9zdHJvbmc%2BIDg6Mjg6MTguNzA3IEFNPC90ZD48dGQgYWxpZ249J2NlbnRlcic%2BPHN0cm9uZz5FbmRlZDo8L3N0cm9uZz4gODoyODoyMC41ODUgQU08L3RkPjx0ZCBhbGlnbj0ncmlnaHQnPjxzdHJvbmc%2BVG90YWw6PC9zdHJvbmc%2BIDEuODggc2Vjb25kczwvdGQ%2BPC90YWJsZT5kZAIDDw8WAh8BBXk8aDQ%2BQ3JlYXRlIFRyYW5zYWN0aW9uIFNlcnZpY2UgUmV0dXJuPC9oND48Yj5Cb29sZWFuIHJlc3VsdDo8L2I%2BIFRydWU8YnIvPjxiIHN0eWxlPSdjb2xvcjpncmVlbjsnPlRFWFQgUkVTVUxUPC9iPjxicj48YnI%2BZGQCBQ8WAh8AZ2Rkmc4sy89qkfQk3kA8w7SRmIfxUSlxVgFqcNBtkeRIGvY%3D&__EVENTVALIDATION=%2FwEdADckdSulW6vTtuDCsutBCOVBHuYrnCLgzUYcVq885NAgzZBAD6J3MNtrSpGnxWrC%2FWRUrsGtEC0SKq72cYUQj6MHOXVRtuWyUUr8Al4rdtmt%2B8N2xUQitpn6Pknoh%2B5lQf9RKBwWYA7jtXNV6Fyp7wwwYPNRdSlGDjh7ClJg%2F%2FQI%2FsI9IlkxVupeEm%2FDBfOBjmgCFEW5ZOZ3zLZdk8YI6PE6An6aUbI2ZjLPEQsoBH9TOyLW4BJ%2FSTF3Uef4cbjA5Q6oOAbWKMEz9NXGrCaNaN6%2FMpyV5%2F1TvEYWD0yCXnmvyFCW58L34hS5XnYmVzVfcqcUSYbps0k8nVI8D9q4g88Z7oY8IGHKUKDgNd8Kojcr%2FtWV5ox%2FwpXSznh9NtViMcBsMIdnRXtkb14rIvygPErJhFC4ILqjKluJ7FnQqfbUh2wVFAAZqAAVW%2F7QOBwuGJsC4KiUWkyiTt32wEzVgrG55C2gUEtIrhiHZRDanokB6Pjrd%2B6AhBFz9xIwRXGyYSipKDigjvXCrUFe1qtus867Hkdv%2Fmywtqjc8bPQgNMmPZmHMCRBpaSZU%2Fh5766K3e%2FZaAzC5geU%2FGZZrIiHB%2BvOFu3Ip31cWL5V1piWa7JHh4Ck%2FnXjtEEXGp9uhBm0Ym%2Fq%2B8KAFXmT90AD%2FaBcOEqI4c4cQUqoy7AZ1%2BkYVPB39GBt33rofGUZhn9OTmViOoqzzIS3GQPZY9GEdkYtBRCGCBa6y0vMH4d%2BpjEUs1aRMtB7BcOyOKb3MRBTUDqtrd3loN3ma0HbQrCsdBnsAHCSBTq4obkUxHDtJf8dSY2HsN%2BMSiYZt0hmT4kEnnuNAaFBfGj7Oy49XaZ593dhlumGfM%2FFESYlqD233oVLoUueHRunUC66sgsPgZkHYlVHbiQOw0WXZZ5cbdYYXwr661mJ89CqNL7SXM5bHdHZdc8mjZKMhnMRSoTaHKS7nhfvrD%2Fx3IhQquPfSBscM%2BEl0ZjjjtTdVzRZn7DFyWrI8V%2FOY8R04aPRKvp5noI1x8SosQ8JtOO%2BaYKnFL9NCi0aug5qlXDG2aEfC1liIw8tcyTKyO4O3QU2jwgyGg0Cn1uu04sysgxEFpobCcsYBC13vLf00%2BldhvJhee6%2Fsf7z7jMzjigjz9OJ9sLxDWTNf435wga8mfxrwE8QZdUUwumdHowAQUaobtRYmVoJUTgx0Kzlww2Q0Vmf7egxEzjWuWP9tjw%3D&txtProntoID=_CleanInstallSite&txtAuthData=password&txtUsername=apiuser&txtUserPassword=@lph@deV2&ddlProtocol=http%3A%2F%2F&txtDomain=vm05.alphatrust.local&btnCreateTest2=Create+New+Transaction+2&txtTransactionID=&txtParticipantID=&txtDocumentID=&txtMetaDataName=&txtMetaDataValue=&txtTaskID=&txtAttachmentID=

UPDATE 2

I'm not even sure how the Fiddler client has a way of seeing the SOAP in the first place. Fiddler (from what I understand) intercepts the client traffic from the browser (which is just a form post), that form post tells the application on the server to make the web service call to the WCF application on another server (or on the same server in this case) and then the WCF sends back the response data to the calling server. Then the calling server just returns the webpage back the client. So, that's all I'm seeing is the client traffic which has nothing to do with the server to server traffic (even though the client, the calling server and the WCF server are all the same machine in my test case).

Community
  • 1
  • 1
RichC
  • 7,829
  • 21
  • 85
  • 149

1 Answers1

12

Fiddler is a proxy server.

It shows traffic from any client which is configured to point to it. I think you're saying that you've got a web browser making a request to a server which in turn uses SOAP to make a request to another server? If that's the case, you need to run Fiddler on the frontend server, and configure the ASPX or whatever issuing the SOAP request to point at Fiddler.

http://fiddler2.com/blog/blog/2013/01/08/capturing-traffic-from-.net-services-with-fiddler

EricLaw
  • 56,563
  • 7
  • 151
  • 196
  • So I did get it to work by just posting to the endpoint of 127.0.0.1:8888. Of course it doesn't successfully respond to the request but at least I was able to capture the initial SOAP request post which is what I was mainly after. Thanks for the answer - it kept me focused on finding a solution and not thinking I was crazy. – RichC May 04 '13 at 23:49
  • 2
    I added DefaultWebProxy="false" proxyAddress="http://127.0.0.1:8888" to my binding and as long as fiddler is on with port 8888 in the Fiddler Options > Connections tab, it works like a charm. – RichC Sep 17 '13 at 19:03
  • 3
    Thank you, @RichC. For me, it's ``. – JMD Jul 07 '16 at 22:49
  • @EricLaw I have a web service program and I tried to capture the requests to the service. Can I use the same method you suggested? – Yang You Aug 08 '16 at 06:24