Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2254|回复: 5
打印 上一主题 下一主题

chrome设置代理

[复制链接]

1272

主题

2067

帖子

7962

积分

认证用户组

Rank: 5Rank: 5

积分
7962
跳转到指定楼层
楼主
发表于 2021-9-6 15:47:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Qter 于 2022-3-10 15:16 编辑

https://www.linuxdashen.com/%E5% ... E%E4%BB%A3%E7%90%86
  1. QCefViewBrowserApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line)
复制代码
command_line->AppendSwitchWithValue("--default-background-color", "ff000000");//使用背景颜色
  command_line->AppendSwitchWithValue("--background-color", "black");//使用背景颜色
  command_line->AppendSwitch("--off-screen-rendering-enabled");
  command_line->AppendSwitch("--transparent-painting-enabled");


command_line->AppendSwitchWithValue("proxy-server", "socks5://127.0.0.1:8888");


https://cpp.hotexamples.com/exam ... ethod-examples.html


    CefCommandLine::SwitchMap switches;
command_line->GetSwitches(switches);


"You should use AppendSwitchWithValue("proxy-server", "socks5://127.0.0.1:8888")"


回复

使用道具 举报

1272

主题

2067

帖子

7962

积分

认证用户组

Rank: 5Rank: 5

积分
7962
沙发
 楼主| 发表于 2021-9-24 15:52:34 | 只看该作者
回复 支持 反对

使用道具 举报

1272

主题

2067

帖子

7962

积分

认证用户组

Rank: 5Rank: 5

积分
7962
板凳
 楼主| 发表于 2022-3-7 20:01:38 | 只看该作者
在集成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);
1
2
3
4
5
6
7
如需取消代理设置,只需将SetPreference方法的第二个参数设为NULL,即:

context->SetPreference("proxy", NULL, error);
1
此方法设置的代理针对单独的CefBrowser实例,且每次加载完成都可以重新设置
————————————————
版权声明:本文为CSDN博主「SarznLiu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liusarzn/article/details/109051551


https://blog.csdn.net/liusarzn/a ... 1000.2123.3001.4430


回复 支持 反对

使用道具 举报

1272

主题

2067

帖子

7962

积分

认证用户组

Rank: 5Rank: 5

积分
7962
地板
 楼主| 发表于 2022-3-7 20:35:02 | 只看该作者
chromium --proxy-server="socks5://127.0.0.1:1080"
Chromium和Chrome支持HTTP,HTTPS,SOCKS4和SOCK5代理。配置HTTPS代理:

chromium --proxy-server="https://proxy-ip:proxy-port"
回复 支持 反对

使用道具 举报

1272

主题

2067

帖子

7962

积分

认证用户组

Rank: 5Rank: 5

积分
7962
5#
 楼主| 发表于 2022-3-7 22:12:32 | 只看该作者
  //command_line->AppendSwitch("no-proxy-server");
  command_line->AppendSwitchWithValue("--proxy-server", "127.0.0.1:19181");
  command_line->AppendSwitchWithValue("--proxy-server", "http://127.0.0.1:19181");
  command_line->AppendSwitchWithValue("--proxy-server", "https://127.0.0.1:19181");
  command_line->AppendSwitchWithValue("--proxy-server", "socks5://127.0.0.1:19181");
  command_line->AppendSwitchWithValue("proxy-server", "SOCKS5://127.0.0.1:19181");
回复 支持 反对

使用道具 举报

1272

主题

2067

帖子

7962

积分

认证用户组

Rank: 5Rank: 5

积分
7962
6#
 楼主| 发表于 2022-3-8 11:35:29 | 只看该作者
  cache_path = QString(QDir::current().path() + "/" + CACHE_DIRECTORY_NAME).toStdString();
  //需要用浏览器调试再放开下面这行代码
  remote_debugging_port = QCEF_REMOTE_DEBUGGING_PORT;

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-26 05:10 , Processed in 0.076947 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表