C# GeckoFX v45 无法设置 GeckoPreferences 来设置代理

C# GeckoFX v45 cannot set GeckoPreferences to set proxy

我正在使用 GeckoFx v45,我正在尝试设置不同的代理。 我尝试了以下应该正常工作的方法。

private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                Xpcom.Initialize("Firefox"); //just in case its not already loaded
                GeckoPreferences.User["general.useragent.override"] = UA;
                GeckoPreferences.User["network.proxy.type"] = 1;
                //replaced by normal valid proxy and port
                GeckoPreferences.User["network.proxy.http"] = "1.1.1.1";
                GeckoPreferences.User["network.proxy.http_port"] = "1234";
                GeckoPreferences.User["network.proxy.ssl"] = "1.1.1.1";
                GeckoPreferences.User["network.proxy.ssl_port"] = "1234";

                geckoWebBrowser1.Navigate(textBox1.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException.Message);
            }
        }

GeckoBrowser 永远不会加载,它将保持黑色。 在输出中我看到 'System.InvalidCastException' in Geckofx-Core.dll。 在元数据中,我从 DLL

中看到了这一点
public static GeckoPreferences Default { get; }
public static GeckoPreferences User { get; }

我想知道我们如何设置它 Property 而它是只获取的。 我认为这是不允许我的浏览器加载的问题。 当我删除 GeckoPreferences 并简单地 Navigate 浏览器时,它可以工作,但显然没有 Proxy

如果这是问题所在,那么我如何才能在 Gecko Webbrowser 上正确设置代理?

这似乎是一个简单的问题。当我将您的代码添加到我的示例中时,出现运行时错误:

Additional information: A String value may not be assigned to 'network.proxy.http_port' because it is already defined as Int32.

因此,'network.proxy.http_port/ssl_port' 需要是一个整数:

GeckoPreferences.User["network.proxy.http_port"] = 1234;

GeckoPreferences.User["network.proxy.http_port"] = 6789;

您可能还想看看:

  • Help With Proxy Username & Pass with GeckoFX?
  • How to set different proxies for each GeckoFX instance?