cefsharp 使用代理切换ip

CefSharp提供WPF和WinForms Web浏览器控件实现,不同于Webbrowser嵌入的是IE,CefSharp在.NET应用程序中嵌入Chromium。

普通的CefSharp使用代理功能代码如下:

var settings = new CefSettings();

settings.CachePath = "cache";

settings.CefCommandLineArgs.Add("proxy-server", ProxyAddress);

Cef.Initialize(settings);

如果代理需要用户名和密码验证就再加一段以下代码

CefSharp.CefSharpSettings.Proxy = new CefSharp.ProxyOptions(代理ip, 端口, 用户名,密码);

最近在使用CefSharp的代理设置功能时遇到一个问题,使用过程种需要一直换代理ip,但是Cef.Initialize(settings) 只能初始化一次,最开始是想通过每次使用生成一个新的实例的方式来做,但是总感觉不太好。后来查资料找到了以下办法,拿出来跟大家共享:

编写方法:

async private void SetProxy(ChromiumWebBrowser cwb, string Address)

{

await Cef.UIThreadTaskFactory.StartNew(delegate

{

var rc = cwb.GetBrowser().GetHost().RequestContext;

var v = new Dictionary();

v["mode"] = "fixed_servers";

v["server"] = Address;

string error;

bool success = rc.SetPreference("proxy", v, out error);

});

}

然后每次更新换代理ip时调用该方法就可以,如下:

SetProxy(CefBrowser, 新代理ip及端口);

CefSharp.CefSharpSettings.Proxy = new CefSharp.ProxyOptions(新代理ip, 端口, 用户名,密码);


posted @   易胆大888  阅读(4638)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示