我下载了(cefclient&cefsimple)c++示例随附的CEF(chromium嵌入式框架)二进制发行版,并意识到cefclient可以在运行时更改代理设置。

这样做的关键是获取RequestContext并调用函数SetPreference。

在CefClient上的一切都很好。

但是在CefSharp上,调用SetPreference始终返回false,并且对于首选项名称“proxy”,HasPreference也返回false。

最佳答案

感谢ojota主动强制更改请求上下文首选项的正确方法是在CEF UI线程上运行代码,如下所示:

    Cef.UIThreadTaskFactory.StartNew(delegate {
        var rc = this.browser.GetBrowser().GetHost().RequestContext;
        var v = new Dictionary<string, object>();
        v["mode"] = "fixed_servers";
        v["server"] = "scheme://host:port";
        string error;
        bool success = rc.SetPreference("proxy", v, out error);
        //success=true,error=""
    });

07-24 21:35