使用Fiddler时,会弹出一个警告对话框.
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
Run Code Online (Sandbox Code Playgroud)
并且它显示Fiddler将HTTP Header的主机更改为"proxy.music.pp.com",有没有办法禁用Fiddler更改它?
从我的书:
交换主机头
当Fiddler获取其URL与其Host头不匹配的请求时,原始Host值将存储在会话标志中X-Original-Host,然后该Host值将替换为从URL解析的主机.放置在FiddlerScript BeforeRequest函数中的以下脚本通过将请求路由到原始主机头指定的主机来反转行为.
if (oSession.BitFlags & SessionFlags.ProtocolViolationInRequest)
{
var sOverride = oSession["X-Original-Host"];
if (!String.IsNullOrEmpty(sOverride))
{
oSession["X-overrideHost"] = sOverride;
oSession["ui-backcolor"] = "yellow";
// Be sure to bypass the gateway, otherwise overrideHost doesn't work
oSession.bypassGateway = true;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过规则来做到这一点。
进入自定义规则,找到函数:OnBeforeRequest(oSession: Session)
然后添加以下内容作为该函数的最后一行:
if (oSession.HostnameIs("proxy.music.pp.com")) { oSession.host = "119.147.22.41"; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8035 次 |
| 最近记录: |