.NET中有什么方法可以以编程方式侦听HTTP流量?

时间:2020-03-06 14:45:41  来源:igfitidea点击:

我正在使用浏览器自动化来测试网站,但是我需要验证来自浏览器的HTTP请求(即图像,外部脚本,XmlHttpRequest对象)。有没有一种方法可以以编程方式实例化供浏览器使用的代理,以查看其发送的内容?

我已经在使用Fiddler来监视流量了,但是我希望我可以在连续的构建集成中使用没有UI的东西。

解决方案

我简要地研究了同一件事,并考虑了两种解决方案(但尚未尝试过)。

我的第一个建议是使用HttpListener类(以及可能的Webclient或者其他与System.Net http相关的类将请求重新发布到应用程序)作为WebBrowser测试调用的代理。我没有使用HttpListener的经验,但是它看起来像是一种将代理调用传递到应用程序的简单且很有前途的方法。

我的第二个建议是做Fiddler的工作:进入测试计算机上的WinINET Http堆栈以充当代理(使用某种过滤器将其范围缩小到WebBrowser的调用范围)。不幸的是,我能够找到的最好的例子是Fiddler本身,而我知道获得代码的唯一方法就是Reflector。也许可以通过另一种方式获取Fiddler代理代码,但是我没有时间充分研究此路径。

HTH !,
理查德