fiddlercore模拟测试响应

时间:2014-03-06 16:04:21

标签: asp.net asp.net-mvc fiddler fiddlercore

我需要在某些测试中模拟Web请求的Web响应。我打算用fiddler核心。所以fiddler就像代理一样,我可以为我喜欢的每个请求设置响应。但我需要运行一些类似控制台应用程序或独立应用程序的东西,以使fiddler核心能够拦截请求。我需要它在我的asp.net mvc测试应用程序中以某种方式初始化,以便测试人员可以通过仅使用URL来访问这些虚假数据,而无需运行fiddler或任何其他应用程序。

现在我试图在Controller动作方法中运行我的fiddler应用程序,但它不会拦截任何东西。 我也尝试添加URLMonInterop.SetProxyInProcess("127.0.0.1:"+ myPort, ""),但它也不起作用。

有没有办法自我托管fiddler核心应用并拦截请求?

更新: 最后,我设法在asp.net mvc应用程序中托管了fiddler核心。我在静态类的静态方法中进行了初始化,并且它完成了诀窍。此外,由于某种原因,在调用shutdown然后再次执行初始化后,我无法代理任何内容。我甚至cal GC.Collect,没有任何帮助,但刷新主机进程,在我的情况下IIS快递。

1 个答案:

答案 0 :(得分:1)

如文档所述,SetProxyInProcess仅影响URLMon客户端,.NET不使用URLMon进行网络连接。

.NET客户端通常会自动获取当前的代理设置,但是如果您在另一个用户帐户中运行FiddlerCore,那就不会起作用(并且您可能不希望您的模型器弄乱任何流量,除了你的测试应用程序)。因此,您应该明确配置应用程序以通过FiddlerCore实例代理其流量;如果您的服务是本地http://fiddlerbook.com/fiddler/help/hookup.asp#Q-DOTNET

,请参阅http://fiddlerbook.com/fiddler/help/hookup.asp#Q-IIShttp://fiddlerbook.com/fiddler/help/hookup.asp#Q-LocalTraffic