【问题标题】:Set a proxy in C#?在 C# 中设置代理?
【发布时间】:2011-12-06 15:35:51
【问题描述】:

我想在 C#.NET 中设置一个代理,问题是,我将如何使所有 Web 请求和 Web 浏览器控件通过代理连接?像 SOCKS 代理?

我需要将它应用于任何 Web 浏览器控件或任何 Web 请求。如果我可以将其设置为使来自用户计算机的所有传出请求都通过代理发送,那将是最好的。

【问题讨论】:

    标签: c# proxy


    【解决方案1】:

    默认情况下,您的 C# 代码将使用在 IE 连接设置中设置的系统代理。

    如果你想显式,你可以通过 System.net 下的 config 来实现:

    <defaultProxy useDefaultCredentials="true">
        <proxy usesystemdefault="true" proxyaddress="[proxy address]" bypassonlocal="true" />
    </defaultProxy>
    

    以编程方式,您可以设置代理:

    http://msdn.microsoft.com/en-us/library/system.net.webproxy.aspx

    WebProxy proxyObject = new WebProxy("http://proxyserver:80/",true);
    WebRequest req = WebRequest.Create("http://www.contoso.com");
    req.Proxy = proxyObject;
    

    编辑: 对于网络浏览器控制,试试这个 SO 帖子:(免责声明 - 没有尝试过)

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

    【讨论】:

    • 我明白,但是 WebProxy 对象是否仅适用于该单个 Web 请求,我如何将其应用于 Web 浏览器控件?另外,如何编辑 System.net 的配置?
    • 在不影响 IE 设置的情况下在 Web 浏览器控件上设置代理进行编辑。
    • 好吧,所以我读了另一篇文章,有人说不改变 IE 设置是不可能的,除了一篇谈论一些代码的文章......但是我将如何实现他提供的内容?
    • 我还没有这样做 - 这是另一篇文章,以防它为您指明正确的方向。那时,您托管了一个 IE 实例,因此最直接的答案是使用系统设置。除此之外,试试这个?? stackoverflow.com/questions/3464444/…
    • 好吧,我希望有一种方法可以在不编辑注册表/IE 设置的情况下这样做,但显然这是不可能的。不过感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2015-11-26
    相关资源
    最近更新 更多