我下载了(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=""
});