我想调试来自another question here on SO的HTTP请求的错误。所以我读了一下Fiddler,想用它来调试我的问题。但我似乎无法通过我的WPF应用程序获得通过Fiddler的流量。我相信我需要配置一个代理。我使用WebClient作为基本示例,但我想我稍后将需要WebRequest。但是现在,通过一个简单的WebClient,我怎样才能让它通过Fiddler(我相信我必须将代理设置为localhost:8888)?
更新
我不知道我是否做对了,但我试过
var wc = new WebClient();
WebProxy proxy = new WebProxy();
proxy.Address = new Uri("http://localhost:8888");
wc.Proxy = proxy;
但失败了 - 我在Fiddler看不到任何流量
我试过......
var wc = new WebClient();
WebProxy proxy = new WebProxy("127.0.0.1", 8888);
wc.Proxy = proxy;
仍然没有
答案 0 :(得分:51)
为什么我看不到发送的流量
http://localhost
或http://127.0.0.1?
Internet Explorer和.NET Framework硬编码不发送 通过任何方式请求Localhost 代理人,作为代理,Fiddler会 没有收到这样的流量。
最简单的解决方法是使用您的计算机名称作为主机名 而不是Localhost或127.0.0.1。所以, 例如,而不是打
http://localhost:8081/mytestpage.aspx
, 而是访问http://machinename:8081/mytestpage.aspx
。
答案 1 :(得分:16)
也许有点晚了,但是......
我只是通过向localhost添加“dot”来解决这个问题,因此我尝试访问localhost
而不是访问localhost.
(注意主机名末尾的点)
信用到期的信用: 我从这个帖子中获得了这个不寻常的提示http://www.west-wind.com/weblog/posts/2009/Jan/14/Monitoring-HTTP-Output-with-Fiddler-in-NET-HTTP-Clients-and-WCF-Proxies#596591
工作正常!
答案 2 :(得分:12)
您可以在下面的帖子中找到答案 https://stackoverflow.com/a/7506427/471499
它列出您需要在web.config或App.Config
中添加它<system.net>
<defaultProxy>
<proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" />
</defaultProxy>
</system.net>
这就是全部,但在关闭小提琴手后不要忘记删除web.config行,因为如果你不这样做就会出错。
参考:http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy
答案 3 :(得分:3)
我一直使用以下配置重定向网络HTTP调用以从我的应用程序传递fiddler代理。
这适用于所有类型的.NET应用程序(包含web.config
或app.config
文件),在fiddler中最好禁用Capture Traffic
选项以避免从所有应用程序捕获一般流量应用运行。这方面的快捷键是 F12 。
<system.net>
<defaultProxy>
<proxy proxyaddress="http://localhost:8888/" />
</defaultProxy>
</system.net>
如果您有第三方程序集,而您无法更改调用URL的代码,则这是有价值的配置。
我希望这有助于某人。
答案 4 :(得分:1)
“IIS Express不会接收到machinename的流量,因此转而使用localhost.fiddler fiddler2.com/documentation/Configure-Fiddler/Troubleshooting/... - robrich 2013年5月9日6:02”
上面的RobRich说得对。 这是唯一可行的,因为我只能使用IIS Express。