今天使用 Fiddler 的时候,发现 Fiddler 更新了。针对本机的 HTTP 访问问题也给出了一个新的 Update.
首先,由于 IE 和 .NET Framework 内部的硬编码设计,使得对于本机的访问不会通过代理进行,所以,造成 Fiddler 没有办法直接监控到类似的内容。
对于刚刚发布的 IE9 RC 来说,已经进行了相应的调整,不再需要任何额外的步骤就可以监控到发送到 localhost 或者 127.0.0.1 的流量。
对于其他的 IE 版本来说,最简单的方法就是使用主机名代替 localhost 或者 127.0.0.1。
例如,对于 http://localhost:8081/my.aspx 来说,使用 http://machinename:8081/my.aspx 来访问即可。
另外,还可以使用 http://ipv4.fiddler/ 来表示 IPv4 网卡上的 localhost,或者使用 http://ipv6.fiddler/ 来表示 IPv6 网卡上的 localhost,这种方法与 Visual Studio 的开发服务器 Cassini 一起工作特别好,因为这个测试服务器仅仅监听 IP v4 的 loopback 网卡。
例如:对于 http://localhost:51150/Web1/Default.aspx 来说,http://ipv4.fiddler:51150/Web1/Default.aspx 来进行访问。
最后, 你可以更新你的 Fiddler 规则文件,在 Fiddler 中选择菜单 Rules -> Customize Roles... 如图:
然后,在打开的规则文件中,找到 static function OnBeforeRequest(oSession:Fiddler.Session){ 的行,这是在请求之前的处理方法。
在其中增加一行
结果可能如下所示:
if (oSession.HostnameIs("MYAPP")) { oSession.host = "127.0.0.1:8081"; }
}
然后,访问 http://myapp/ 的时候,将会实际上访问 127.0.0.1:8081 !