2009-09-24 33 views

回答

10

如果不行,Wireshark是一个类似的工具,可以在网络硬件级别工作,因此它可以捕获来自任何应用程序的网络流量。

Wireshark比Fiddler稍微复杂一些,而且更通用一些,但它是您的工具箱中的一个很好的工具,值得研究一下。

+0

@Charming匿名downvoter:你有没有想我说“如果你不能”的位?原谅我试图帮助。 – RichieHindle 2009-09-24 09:34:00

+1

@Richie:我中和了downvote,因为我也不明白为什么。 – tuergeist 2009-09-24 09:35:51

+1

@tuergeist:谢谢。你是个绅士。 – RichieHindle 2009-09-24 09:36:58

37

The Fiddler FAQ给出了这个答案。

本质上,您通过Fiddler路由HTTP流量(即使用Fiddler作为代理)。

下面是一些链接,这将有助于:
Fiddler Web Debugging - Configuring Clients

这反过来又链接到这里:
Take the Burden Off Users with Automatic Configuration in .NET

您可以通过在web.config文件中的一些配置设置实现这一目标(对ASP .NET应用程序),像这样:

<system.net> 
    <defaultProxy> 
    <proxy 
     proxyaddress="http://[your proxy address and port number]" 
     bypassonlocal="false" 
    /> 
    </defaultProxy> 
</system.net> 

here完整详细信息在<defaultProxy>设置。

另外,也可以使用像在代码中使用一个WebProxy对象:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]"); 
WebProxy myproxy = new WebProxy("[your proxy address]", false); 
request.Proxy = myproxy; 
request.Method = "GET"; 
HttpWebResponse response = (HttpWebResponse) request.GetResponse(); 

对WebProxy类的完整详细信息,请参阅here

还要注意的重要的“告诫”,即在提琴手常见问题解答中提到:

为什么我看不到流量发送到http://localhosthttp://127.0.0.1
IE7和.NET Framework的 硬编码不经过代理服务器发送的 本地主机的请求,并作为 代理,提琴手不会收到这样的 流量。

解决方法是使用您的 机器名称作为主机名,而不是Localhost或127.0.0.1的 。因此,对于 实例,而不是击中 http://localhost:8081/mytestpage.aspx, 而不是访问 http://machinename:8081/mytestpage.aspx

...或者,如果你正在使用招v2.1.8 或更高版本,只需使用http://ipv4.fiddler 打本地主机IPv4的适配器上, 或使用http://ipv6.fiddler打 本地主机IPv6的适配器上。此 与Studio Studio测试网络服务器(代号: Cassini)的配合良好,因为测试服务器只有 监听IPv4回送适配器。

最后,你可以自定义您的规则 文件像这样:

static function OnBeforeRequest(oSession:Fiddler.Session) 
    { 
     if (oSession.HostnameIs("MYAPP")) 
     { 
     oSession.host = "127.0.0.1:8081"; 
     } 
    } 

...然后只是打http://myapp,这将作为 别名127.0.0.1:8081行动。

+0

感谢所有的细节 – Dave 2009-10-26 16:39:27

+1

万一它可以帮助任何人,http:// [你的代理地址和端口号]的默认值是http://127.0.0.1:8888,你可以在Tools> Fiddler中检查/更改端口选项 – 2014-08-07 22:31:01

4

如果你能够修改请求URI,这是localhost则有一个更简单的解决方案:更换主机名localhost.fiddler

这不依赖于设置代理(不论是在.config文件中设置HttpWebRequest.Proxy还是<defaultProxy>元素)。

(从上this question评论。)