我需要监控我的应用程序是否收到传入的 http POST
和 GET
请求,这些请求来自机器外部,有时来自机器内部。
这可能吗?
一直在使用 fiddler,但这只是传出而不是传入(从机器外部)还是我配置不正确?
这适用于我的网络应用程序,该应用程序旨在从外部服务器接收 POST
。
最佳答案
你需要做的是configure Fiddler to work as a "reverse proxy"
在 Fiddler 的网站上有关于执行此操作的 2 种不同方法的说明。以下是步骤的副本:
第 0 步
在以下任一选项起作用之前,您必须使其他计算机能够连接到 Fiddler。为此,请单击工具 > Fiddler 选项 > 连接并勾选“允许远程计算机连接”复选框。然后关闭 Fiddler。
选项 #1:将 Fiddler 配置为反向代理
Fiddler 可以配置为任何发送到 http://127.0.0.1:8888
的流量都会自动发送到同一台机器上的不同端口。要设置此配置:
- 启动注册
- 在 HKCU\SOFTWARE\Microsoft\Fiddler2 中创建一个名为 ReverseProxyForPort 的新 DWORD。
- 将 DWORD 设置为您希望将入站流量重新路由到的本地端口(通常是标准 HTTP 服务器的端口 80)
- 重启 fiddler
- 将浏览器导航至
http://127.0.0.1:8888
选项 #2:编写 FiddlerScript 规则
或者,您可以编写一个规则来做同样的事情。
假设您正在一台名为 WEBSERVER 的机器的 80 端口上运行一个网站。您正在 Windows SmartPhone 设备上使用 Internet Explorer Mobile Edition 连接到该网站,您无法为其配置 Web 代理。您想要捕获来自电话的流量和服务器的响应。
- 在 WEBSERVER 机器上启动 Fiddler,在默认端口 8888 上运行。
- 点击工具 | Fiddler 选项,并确保选中“允许远程客户端连接”复选框。如果需要重新启动。
- 选择规则 |自定义规则。
- 在 OnBeforeRequest 处理程序中,添加一行新代码:
if (oSession.host.toLowerCase() == "webserver:8888") oSession.host = "webserver:80"; - 在智能手机上,导航至
http://webserver:8888
来自智能手机的请求将出现在 Fiddler 中。请求从端口 8888 转发到运行 Web 服务器的端口 80。响应通过 Fiddler 发送回智能手机,智能手机不知道内容最初来自端口 80。
关于asp.net - 如何监控所有传入的 http 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428680/