Search code examples
fiddler

Fiddler changes zipped request causing a failure


I have an app that sends zipped HTTP POST. With Fiddler running, requests are failing because the server is unable to unzip the body. Shutting down Fiddler eliminates the problem. Any ideas?


Solution

  • In the capture provided, the request body is compressed twice (gzip, then gzip again) but the Content-Encoding header incorrectly lists only Content-Encoding: gzip.

    The request's Content-Length header is also incorrect: It is Content-Length: 141 but the body sent to the server is actually 164 bytes in length. The original body was 159 bytes in length, the first compression pass shrinks it to 141 bytes in length, and when the already-compressed content is recompressed it grows to 164 bytes in length.

    By default, Fiddler doesn't care about double-compressed content or invalid Content-Encoding headers, as it doesn't attempt to decompress the request body unless you tell it to do so. The only explanation I can think of is that perhaps you have written some rule in FiddlerScript which is blindly compressing the request body and it's leading to this problem. One other reason to suspect this is that Fiddler would have complained about an invalid Content-Length header when reading this request, and the fact that it didn't suggests that the request body was modified inside Fiddler itself.