zoukankan      html  css  js  c++  java
  • 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方法即可。
  • 相关阅读:
    MFC中实现LISTCRTL控件选中多行进行删除操作
    如何使属性值为“只读”(readonly)的EDIT控件在获取焦点后不显示光标?
    crm 使用stark组件
    ModelForm组件
    自定义admin管理工具(stark组件)
    Django-admin管理工具
    Django-session中间件源码简单分析
    基于角色的权限管理
    ajax参数补充
    datetime模块
  • 原文地址:https://www.cnblogs.com/gulangduxiao/p/13472804.html
Copyright © 2011-2022 走看看