【问题标题】:c# cefsharp browser trying to set proxy [closed]c#cefsharp浏览器试图设置代理[关闭]
【发布时间】:2024-04-25 18:05:02
【问题描述】:

我不太擅长 CefSharp 浏览器,所以我需要一些外部帮助。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;
using System.Runtime.InteropServices;
using Microsoft.Win32;

 namespace WindowsFormsApplication7
{
    public partial class debug : Form
    {
        public ChromiumWebBrowser browser;

        public debug()
        {
            InitializeComponent();
            InitBrowser();
        }


        private void debug_Load(object sender, EventArgs e)
        {

        }

        public void InitBrowser()
        {
            Cef.Initialize(new CefSettings());
            browser = new ChromiumWebBrowser("https://whatismyipaddress.com/");     
            this.Controls.Add(browser);
            browser.Dock = DockStyle.Fill;
            CefSettings cfsettings = new CefSettings();
            cfsettings.CefCommandLineArgs.Add("proxy-server", "200.29.191.149:3128");
            cfsettings.UserAgent = "My/Custom/User-Agent-AndStuff";
            Cef.Initialize(cfsettings);


        }

    }
}

这是我当前的代码。我希望它使用代理,过去 3 个小时我一直在谷歌搜索。时间不早了,希望有人能帮我在里面插入代理。

【问题讨论】:

    标签: c# proxy cefsharp


    【解决方案1】:

    如果您使用不同类型的代理“http”,则必须在代理模式中设置它,例如如下图

    cfsettings.CefCommandLineArgs.Add("proxy-server", "socks5://200.29.191.149:3128");
    

    您可以在CEF3 Documentation阅读更多内容

    【讨论】:

    • dident 为我工作,仍然显示我的本地 ip。
    • @nedn 在下面看到我的答案。对不起,我的英语不好
    【解决方案2】:

    你双重设置 CefSettings。您必须先配置。配置在项目中一次,它应该在您的应用程序中第一次调用 InitializeComponent() 之前。

    public debug()
    {
       Configure();
       InitializeComponent();
       CreateNewBrowser();
    }
    
    public void Configure()
    {
       CefSettings cfsettings = new CefSettings();
       cfsettings.CefCommandLineArgs.Add("proxy-server", "200.29.191.149:3128");
       cfsettings.UserAgent = "My/Custom/User-Agent-AndStuff";
       Cef.Initialize(cfsettings);
    }
    
    public void CreateNewBrowser()
    {
       browser = new ChromiumWebBrowser("https://whatismyipaddress.com/");     
       this.Controls.Add(browser);
       browser.Dock = DockStyle.Fill;     
    }
    

    【讨论】:

    • 它可以在没有 ip 的情况下工作,但是当我尝试放置代理时它什么也没做。
    • @nedn 你创建了新项目?你在不同的代理上测试它?什么显示事件 OnWebBrowserLoadError?
    • 它是同一个项目,是的,我测试了多个代理甚至私有代理。我不明白最后一部分。但是当我评论 cfsettings 代理时它加载正常。
    【解决方案3】:

    SefSharp3 有同样的问题。 我用相同的配置启动CEF3

    --proxy-server=...

    而且效果很好。我认为这是一个错误。 CefSharp3 有很多错误,我将使用 C++ CEF 来源。

    【讨论】: