How to use proxy with C# application

2019-03-14 08:04发布

问题:

I am using Microsoft Visual Studio 2010 C# .net 4.0

I have a webbrowser element. What i want to do is navigating via Webbrowser element with using proxy. How can i do that ? thank you.

回答1:

The browser control is just an instance of IE - it will use IE's proxy settings. You can set these by playing with registry keys if you must do it in code.

        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);

See this: http://social.msdn.microsoft.com/forums/en-US/winforms/thread/da510380-9571-4fcd-a05f-b165ced45017/

Update: Looks like this can be done for just the control and not the entire machine. See this code sample for setting the proxy for just a single process - http://blogs.msdn.com/b/jpsanders/archive/2011/04/26/how-to-set-the-proxy-for-the-webbrowser-control-in-net.aspx



回答2:

See this link. You can easily set proxies for web requests but the WebBrowser class shares settings with iexplore.exe ... If you want, you can adjust the proxy settings by programmatically changing the IE registry values and then change them back (see brendan's answer).

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