• Cefsharp 设置代理方法


    前提条件

    为了实现在cefsharp里面设置代理,首先在创建一个ChromiumWebBrowser的时候,检查是否使用了以下代码

    settings.CefCommandLineArgs.Add("no-proxy-server", "1");//不使用代理

    在RequestHandler下,实现GetAuthCredentials

    public class BaseRequestHandler : RequestHandler
    {
        private string _userName;
        private string _password;
    
        public BaseRequestHandler(string userName, string password)
        {
            this._userName = userName;
            this._password = password;
        }
    
        public BaseRequestHandler()
        {
            
        }
    
      
    
        protected 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(_userName, _password);
    
                return true;
            }
    
            return false;
        }
    }

    增加/卸载代理

    万事俱备后,在对应的地方加上。如果想卸载掉代理, v["mode"] = "direct"; 替换即可

    private async Task SetProxy(ChromiumWebBrowser cwb, string address)
    {
        try
        {
            await Cef.UIThreadTaskFactory.StartNew(delegate
            {
                var rc = cwb.GetBrowser().GetHost().RequestContext;
                var v = new Dictionary<string, object>();
                v["mode"] = "fixed_servers";
                v["server"] = address;
                string error;
                bool success = rc.SetPreference("proxy", v, out error);
                Console.WriteLine(success);
            });
        }
        catch (Exception e)
        {
            //
        }
    }
  • 相关阅读:
    预备作业03
    预备作业02
    预备作业01
    20162319莫礼钟 2016-2017-2 《程序设计与数据结构》第1周学习总结
    预备作业03
    20162319 莫礼钟 预备作业02
    20162319莫礼钟 预备作业01
    20162307 实验一 实验报告
    20162307 第4周学习总结
    20162307 第3周学习总结
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/14775462.html
Copyright © 2020-2023  润新知