Using Proxies to Debug HTTP Requests

When working with a WCF application that has an HTTP binding, it's often useful to be able to see the exact messages that are being transmitted on the wire. You can sometimes achieve that through message logging, but I've found that capturing the HTTP traffic directly is usually both easier and more accurate.

When using HTTP with the text encoding both the SOAP messages and HTTP protocol information are directly readable. Even when using HTTP with the binary encoding, the protocol information is readable though the SOAP messages are not. The protocol information is often sufficient once you've established that message serialization is working correctly.

HTTP applications have some better choices for debugging than the packet capturing tools used with TCP applications. In particular, many HTTP applications work well with proxy servers since they're a common networking technique with the protocol. Fiddler is a debugging tool built as an HTTP proxy server that we've commonly used in the past. Rick Strahl has also written an article about how to use and configure Fiddler when debugging an application.