有什么办法可以将Fiddler挂起来捕获使用.NET HttpWebRequest和HttpWebResponse所做的请求和响应?获取使用HttpWebRequest/HttpWebResponse在Fiddler中显示的HTTP请求和响应
回答
Check this blog post我认为这就是你想要的。
如果不行,Wireshark是一个类似的工具,可以在网络硬件级别工作,因此它可以捕获来自任何应用程序的网络流量。
Wireshark比Fiddler稍微复杂一些,而且更通用一些,但它是您的工具箱中的一个很好的工具,值得研究一下。
@Charming匿名downvoter:你有没有想我说“如果你不能”的位?原谅我试图帮助。 – RichieHindle 2009-09-24 09:34:00
@Richie:我中和了downvote,因为我也不明白为什么。 – tuergeist 2009-09-24 09:35:51
@tuergeist:谢谢。你是个绅士。 – RichieHindle 2009-09-24 09:36:58
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://localhost或http://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行动。
感谢所有的细节 – Dave 2009-10-26 16:39:27
万一它可以帮助任何人,http:// [你的代理地址和端口号]的默认值是http://127.0.0.1:8888,你可以在Tools> Fiddler中检查/更改端口选项 – 2014-08-07 22:31:01
如果你能够修改请求URI,这是localhost
则有一个更简单的解决方案:更换主机名localhost.fiddler
。
这不依赖于设置代理(不论是在.config
文件中设置HttpWebRequest.Proxy
还是<defaultProxy>
元素)。
(从上this question评论。)
- 1. Apache Camel HTTP显示请求和响应
- 2. 使用fiddler从msiexec捕获http请求
- 3. 用Redux Saga显示HTTP请求响应
- 4. fiddler http请求和病毒
- 5. 如何在Fiddler中显示HTTP请求的大小?
- 6. HTTP请求获取部分响应
- 7. php http请求获取.text响应
- 8. PHP HTTP请求获取JSON响应
- 9. Http请求和响应
- 10. 从http获取请求的响应请求
- 11. java中用户端的HTTP请求和请求和响应的捕获时间
- 12. 如何使用Netty获取http请求/响应头的大小?
- 13. 文件显示的请求和响应
- 14. Http请求和codeigniter中的响应
- 15. servlet中的非http请求和响应
- 16. AJAX请求 - 获取HTTP代码/响应头成功请求
- 17. 在java中获取确切的http web响应httpurlconnection请求
- 18. HTTP请求响应
- 19. 使用Python请求模块获取HTTP响应头文件
- 20. 获取HTTP请求和响应的数据大小
- 21. 获取Http请求和响应的大小
- 22. 使用JQuery和Ajax获取HTTP请求
- 23. JSP使http获取请求并获得json响应
- 24. 无法获取的POST HTTP请求的HTTP JSON响应
- 25. 响应重定向vs http请求获取响应
- 26. 如何在POST请求后使用curl获取HTTP响应头和主体
- 27. 创建SOAP请求和显示响应
- 28. zeromq请求/响应示例显示在Python中使用队列?
- 29. 在Pharo中发出HTTP请求并获取响应头
- 30. 在php中响应http获取请求与json对象
也许我不明白你的问题,但菲德勒是一个Web调试(代理)。如果您的请求是通过代理发送的,则会捕获它。请描述你(真的)想要做什么。 – tuergeist 2009-09-24 09:33:36