Cefsharp 75 設置代理


方法1:

CefSharp.CefSharpSettings.Proxy = new CefSharp.ProxyOptions("ip", "端口號", "用戶名", "密碼"); 

這種方法的缺點是無法動態改變代理IP。

方法2:在程序運行期間,動態修改代理IP

ChromiumWebBrowser wb = new ChromiumWebBrowser("https://www.baidu.com/");
wb.RequestHandler = new MyRequestHandler("rsel", "xanz");

public class MyRequestHandler : DefaultRequestHandler
        {
            string _proxyUserName = "", _proxyUserPwd = "";

            public MyRequestHandler() { }

            public MyRequestHandler(string proxyUser,string proxyPwd)
            {
                _proxyUserName = proxyUser;
                _proxyUserPwd = proxyPwd;
            }

            public override bool GetAuthCredentials(IWebBrowser chromiumWebBrowser, IBrowser browser, string originUrl, bool isProxy, string host, int port, string realm, string scheme, IAuthCallback callback)
            {
                if (isProxy == true)
                {
                    callback.Continue(_proxyUserName, _proxyUserPwd);

                    return true;
                }

                return false;
            }

            
           
        }

async private void SetProxy(ChromiumWebBrowser cwb, string address)

        {
            await Cef.UIThreadTaskFactory.StartNew(delegate

            {
                var rc = cwb.GetBrowser().GetHost().RequestContext;
                Dictionary<string, string> v = new Dictionary<string, string>();
                if (!string.IsNullOrEmpty(address))
                {


                    v["mode"] = "fixed_servers";

                    v["server"] = address;
                }
                else
                    v["mode"] = "direct";//設為direct表示取消代理
                string error;
                
                bool success = rc.SetPreference("proxy", v, out error);

            });

        }

需要設置/取消代理的時候,調用SetProxy方法即可。

 


免責聲明!

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



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