zoukankan      html  css  js  c++  java
  • 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, 端口, 用户名,密码);


  • 相关阅读:
    红黑树的修正过程
    配置文件elasticsearch.yml详解
    HEAD插件安装
    css reset.css
    vue-router之router-link
    vue2.0 代码功能片段
    vue2.0的常用功能简介
    electron 的中文文档的地址 以及 窗口改变的步骤
    ph 的使用步骤
    git 提交的步骤
  • 原文地址:https://www.cnblogs.com/yidanda888/p/12022280.html
Copyright © 2011-2022 走看看