FiddlerCore:如何正确使用系统代理?

时间:2016-08-26 13:18:55

标签: proxy fiddlercore

我想嗅探浏览器的某些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代码中设置它?

1 个答案:

答案 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()