如何在 C# 应用程序中使用代理

Posted

技术标签:

【中文标题】如何在 C# 应用程序中使用代理【英文标题】:How to use proxy with C# application 【发布时间】:2011-09-24 15:41:37 【问题描述】:

我正在使用 Microsoft Visual Studio 2010 C# .net 4.0

我有一个 webbrowser 元素。我想要做的是使用代理通过 Webbrowser 元素导航。我怎样才能做到这一点 ?谢谢。

【问题讨论】:

+1。如何订阅此主题? @jp2code,这就是问题上赞成/反对箭头下方的星号的用途。点击它。 【参考方案1】:

浏览器控件只是 IE 的一个实例——它将使用 IE 的代理设置。如果必须在代码中进行,可以通过使用注册表项来设置这些。

        string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
        string serverName = "";//your proxy server name;
        string port = ""; //your proxy port;
        string proxy = serverName + ":" + port;

        RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true);
        RegKey.SetValue("ProxyServer", proxy);
        RegKey.SetValue("ProxyEnable", 1);

看到这个:http://social.msdn.microsoft.com/forums/en-US/winforms/thread/da510380-9571-4fcd-a05f-b165ced45017/

更新:看起来这可以只针对控件而不是整台机器来完成。请参阅此代码示例以仅为单个进程设置代理 - http://blogs.msdn.com/b/jpsanders/archive/2011/04/26/how-to-set-the-proxy-for-the-webbrowser-control-in-net.aspx

【讨论】:

这会更改整个计算机注册表。我只想更改 webbrowser 元素注册 :( 当我执行此 firefox 等操作时,一切都使用该代理。 此解决方案有效,谢谢:) blogs.msdn.com/b/jpsanders/archive/2011/04/26/…【参考方案2】:

查看此链接。您可以轻松地为 Web 请求设置代理,但 WebBrowser 类与 iexplore.exe 共享设置......如果需要,您可以通过以编程方式更改 IE 注册表值然后将其更改回来来调整代理设置(请参阅 Brendan 的答案)。

How to set a proxy for Webbrowser Control without effecting the SYSTEM/IE proxy

【讨论】:

以上是关于如何在 C# 应用程序中使用代理的主要内容,如果未能解决你的问题,请参考以下文章

对话流和 C#。如何获得代理的回复?

C#中查看当前Request是否使用代理的一种方法

在 C# 中设置 Internet Explorer / Windows 以使用 Socks5 代理

如何在 C# 后端使用 EXTJS 代理参数?

如何在c#中使用RabbitMQ

从 PowerShell 调用时无法在 dll 中转换透明代理,但在 C# 控制台应用程序中成功