C# CefSharp 浏览器尝试设置代理

3

我对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个小时。时间已经很晚了,所以我希望有人能帮我将代理插入其中。

3个回答

6

如果您使用的代理类型不同于“http”,则必须将其设置在代理模式中,例如以下所示:

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

您可以在CEF3文档中阅读更多相关的IT技术内容。


对我没有用,仍然显示我的本地IP。 - nedn
@nedn 请看下面我的回答。抱歉我的英语不好。 - 123_123

4

您设置了两次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
@nedn 你创建了新项目吗?你在不同的代理上测试了吗?OnWebBrowserLoadError事件显示了什么? - 123_123
这是同一个项目,是的,我测试了多个代理,甚至私人代理。我不明白最后一部分。但当我注释掉cfsettings代理时,它就可以正常加载了。 - nedn

0

我和 SefSharp3 遇到了同样的问题。 我使用相同的配置启动 CEF3

--proxy-server=...

它可以正常工作。我认为这是一个 bug。而且 CefSharp3 有很多 bug,所以我将使用 C++CEF 源代码。


这并没有提供问题的答案。一旦你拥有足够的声望,你就可以评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - kajetons
好的,抱歉,但我认为这可能对某些人有帮助。 - user3424037

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接