cef设置代理(相当于IE设置的代理)
在集成cef3时,遇到一个设置代理的问题,cef3提供了两个设置代理的方式
继承CefApp类,通过实现接口OnBeforeCommandLineProcessing回调设置,
OnBeforeCommandLineProcessing回调中包含CefCommandLine命令行控制实例,调用CefCommandLine实例的AppendSwitchWithValue方法设置相关属性开关,如设置代理command_line->AppendSwitchWithValue("--proxy-server", "192.168.1.100:8000");,调用AppendSwitch方法设置不需要值的属性开关,如取消代理设置command_line->AppendSwitch("--no-proxy-server");
此方法设置的代理为全局属性,且初始化(CefInitialize)后该回调只会触发一次
继承CefRequestHandler类,通过实现接口OnBeforeBrowse回调设置,通过OnBeforeBrowse回调中的CefBrowser实例获取CefBrowserHost实例,再通过CefBrowserHost实例获取CefRequestContext实例,调用CefRequestContext实例的SetPreference方法设置属性值,设置代理方法如下:
CefRefPtr<CefDictionaryValue> dict = CefDictionaryValue::Create();
dict->SetString("mode", "fixed_servers");
dict->SetString("server", "192.168.1.100:8000");
CefRefPtr<CefValue> value = CefValue::Create();
value->SetDictionary(dict);
context->SetPreference("proxy", value, error);
如需取消代理设置,只需将SetPreference方法的第二个参数设为NULL,即:
context->SetPreference("proxy", NULL, error);
1
此方法设置的代理针对单独的CefBrowser实例,且每次加载完成都可以重新设置
————————————————
版权声明:本文为CSDN博主「SarznLiu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liusarzn/article/details/109051551
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通