我想嗅探浏览器的某些https流量。我的网络设置使用代理配置"使用自动配置脚本:' http://proxyconf-domain.net/'"
现在我的代码看起来像这样:
FiddlerApplication.AfterSessionComplete += FiddlerApplicationOnAfterSessionComplete;
FiddlerApplication.Startup(8888, FiddlerCoreStartupFlags.Default);
...
private void FiddlerApplicationOnAfterSessionComplete(Session oSession)
{
if (oSession.LocalProcessID == 22228)
{
Console.WriteLine("Chrome Traffic");
}
}
问题:启动后我的系统代理设置丢失,因此浏览器无法连接到互联网,我必须手动重置它们。但我希望FiddlerCore像Fiddler App一样工作。
FiddlerCoreStartupFlags.Default具有RegisterAsSystemProxy标志。 Fiddler应用程序具有相同的设置: FiddlerSettings 但是Fiddler应用程序正在捕获流量,浏览器会保留其代理设置。
我是否必须阅读系统代理并在我的FiddlerCore代码中设置它?
答案 0 :(得分:1)
启动后,我的系统代理设置丢失,因此浏览器无法连接到互联网,我必须手动重置它们。但我希望FiddlerCore像Fiddler App一样工作。
这是因为您的程序退出时没有调用Shutdown()
方法。调用Shutdown()
告诉FiddlerCore停止侦听指定的端口,并且
取消注册为系统代理。例如:
FiddlerApplication.AfterSessionComplete += FiddlerApplicationOnAfterSessionComplete;
FiddlerApplication.Startup(8888, FiddlerCoreStartupFlags.Default);
...
//when your program exits
Fiddler.FiddlerApplication.Shutdown();
...
在许多情况下,您最好只是致电Fiddler.FiddlerApplication.oProxy.Detach()
。