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, 端口, 用戶名,密碼);



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM