Is there any way in .NET to programmatically liste

2019-04-11 17:25发布

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 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.

1条回答
2楼-- · 2019-04-11 18:04

I have briefly looked into the same thing and have considered two solutions (but haven't tried them yet).

The first suggestion I have would be to use the HttpListener class (and possibly Webclient or other System.Net http related classes to re-post the requests to your application) as a proxy for the WebBrowser test calls. I have no experience with HttpListener, but it looks like a simple and promising way to proxy calls through to your app.

The second suggestion I have is to do what Fiddler does: tap into the WinINET Http stack on your test machine to act as a proxy (with some sort of filter to narrow it down to JUST your WebBrowser's calls). Unforunately, the best example of this I have been able to find is Fiddler itself and the only way I know to get the code is Reflector. It might be possible to get to the Fiddler proxy code another way, but I did not have time to investigate this path fully.

HTH!, Richard

查看更多
登录 后发表回答