我需要从传入的http监视我的应用程序 POST
并GET
机器外部(有时是机器内部)的请求。
这可能吗?
一直在使用提琴手,但这只会使传出的邮件没有传入(来自机器外部),或者我配置不正确吗?
这是为我的Web应用程序准备POST
从外部服务器接收的。
Answers:
您需要做的是将Fiddler配置为充当“反向代理”
在Fiddler的网站上有2种不同方法的说明。这是步骤的副本:
步骤#0
在以下两个选项之一起作用之前,必须使其他计算机连接到Fiddler。为此,请单击工具>提琴手选项>连接,然后选中“允许远程计算机进行连接”复选框。然后关闭Fiddler。
选项1:将Fiddler配置为反向代理
可以配置Fiddler,以便将发送到的所有流量http://127.0.0.1:8888
自动发送到同一台计算机上的其他端口。要设置此配置:
http://127.0.0.1:8888
选项2:编写FiddlerScript规则
或者,您可以编写执行相同操作的规则。
假设您正在名为WEBSERVER的计算机的端口80上运行网站。您正在使用Windows SmartPhone设备上的Internet Explorer Mobile Edition连接到该网站,但无法为其配置Web代理。您要捕获来自电话的流量和服务器的响应。
http://webserver:8888
来自SmartPhone的请求将出现在Fiddler中。请求从端口8888转发到运行Web服务器的端口80。响应通过Fiddler发送回SmartPhone,后者不知道内容最初来自端口80。
我将安装Microsoft Network Monitor,配置该工具,使其仅看到HTTP数据包(过滤端口)并开始捕获数据包。
你可以在这里下载
SSLApplicationData: Binary Large Object (304 Bytes)
只收到一条消息。有什么办法可以查看此数据?
(对于Mac,请参见下面Partizano评论中的链接)
我知道已经有一个建议的答案了,但是我想提供Telerik应该提供的解释和说明,并涵盖一些“陷阱”,所以去了:
注意:为了使其正常工作,您想要拦截的任何请求都必须发送到端口8888
您可以通过在主机名后面添加:8888来实现,例如,对于MVC路由,例如:
http:// myhostname:8888 /控制器/动作
以管理员身份运行Fiddler转到“工具”>“ Fiddler选项”>“连接”,并确保已选中“允许远程计算机进行连接”,并且“ Fiddler侦听端口”设置为8888:
将Fiddler配置为将在端口8888上收到的请求转发到端口80
而已!现在应该将Fiddler设置为反向代理,以拦截来自端口8888的所有请求(以便您可以在Fiddler中查看它们),然后将它们转发到Web服务器以进行实际处理。
http:// remoteHostname:8888 /控制器/动作
重要说明:查看完您的请求后,请返回“工具”>“提琴手选项”>“连接”并删除“允许远程计算机进行连接”选项,否则第三方将能够通过您的服务器退回流量
伙计们发现了监视从我的机器到我的机器的请求之间本地流动的所有流量的理想方法:
当您需要捕获从本地主机流向本地主机的流量时,您将很难使用wireshark,因为它仅监视网卡上的传入流量。这样做的方法是向Windows添加一条路由,该路由将强制所有流量通过网关,并将其捕获在网络接口上。
为此,请添加带有以下内容的路线:<ip address>
<gateway>
cmd> route add 192.168.20.30 192.168.20.1
然后在wireshark上运行捕获(确保选择了字节流经的接口),然后进行过滤。
新添加的路线将显示为黑色。(因为它们是本地地址)
您可能考虑将Fiddler作为反向代理运行,您应该能够使客户端连接到Fiddler的地址,然后将来自Fiddler的请求转发到您的应用程序。
根据您的要求,这将需要一些端口操作或客户端配置,具体取决于哪个更容易。
有关操作的详细信息,请参见:http : //www.fiddler2.com/Fiddler/Help/ReverseProxy.asp
使用Wireshark。
我没有尝试过:http : //wiki.wireshark.org/CaptureSetup/Loopback
如果这样的作品,然后你可以筛选http
/ http contains GET
/http contains POST
流量。
您可能必须运行两个Wireshark实例,一个捕获本地实例,一个捕获远程实例。我不确定。