Is there any way in .NET to programmatically listen to HTTP traffic?

自作多情 提交于 2019-11-28 09:37:39

问题


I'm using browser automation for testing web sites but I need to verify HTTP requests from the browser (i.e., images, external scripts, XmlHttpRequest objects). Is there a way to programmatically instantiate a proxy or packet sniffer for the browser to use in order to see what its sending?

I'm already using Fiddler to watch the traffic but I want something that's UI-less that I can use in continuous build integration.

Can I easily get the HTTP-specific information from WinpCap?


回答1:


Try winpcap . It's a driver/library combination which can be used to monitor packets. Based on what you are trying to do (watch traffic w/o a UI), this is probably a simpler solution than writing your own proxy.




回答2:


You probably don't want to proxy, that will introduce a lot of unnecessary complexity.

Consider packet sniffing instead, which is pretty much a solved problem. Wireshark is handy as a stand alone utility you can use manually, but it's also possible to do packet sniffing programmatically, using WinPcap, the library on which Wireshark is based. Here's a couple of examples of WinPcap in .Net, .NetNomad's example with sample project, and a CodeProject tutorial, also with source.




回答3:


There are numerous apps for this. My recommendation is Wireshark




回答4:


Have you looked at implementing an Http Module or an Http Handler (.ashx)? They will allow you to intercept each and every web request and process them as you need before getting to your page.



来源:https://stackoverflow.com/questions/137407/is-there-any-way-in-net-to-programmatically-listen-to-http-traffic

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!