fiddler: how to disable overwrite Header Host

Viewed 9342

When using Fiddler, it pops up an alert dialog.

Fiddler has detected a protocol violation in session #14.

The Request's Host header did not match the URL's host component.

URL Host:   proxy.music.pp.com
Header Host:    119.147.22.41

And it shows that Fiddler changed HTTP Header's host to "proxy.music.pp.com", is there any way to disable Fiddler changing it?

4 Answers

I couldn't get what I needed for the existing answers, but Eric Law's answer gave me what I needed to fix my issue. I was having a problem where I was calling a web server by IP address, and I had to add a Host header to get the right endpoint. Fiddler was changing the Host header to the IP address I was calling and removing my Host header value, which caused the call to fail. I added a line to Eric's script to solve this. I put the rule into OnBeforeRequest in the Fiddler Rules Script.

 if (oSession.BitFlags & SessionFlags.ProtocolViolationInRequest) 
    {
        var sOverride = oSession["X-Original-Host"];

        if (!String.IsNullOrEmpty(sOverride)) 
        {
            oSession["X-overrideHost"] = sOverride;
            oSession["ui-backcolor"] = "yellow";
            oSession.oRequest["Host"] = sOverride;

            // Be sure to bypass the gateway, otherwise overrideHost doesn't work
            oSession.bypassGateway = true;
        }
    }

Took this Error:
404 error Bad Request

And changed it to this: 200 Response Good Request

Related