一尘不染

C#通过代理连接

c#

我在办公室工作,要求所有连接都必须通过特定的http代理进行。我需要编写一个简单的应用程序来从Web服务器查询一些值-
如果没有代理,这很容易。如何使C#应用程序可感知代理?如何通过代理建立任何形式的连接?


阅读 214

收藏
2020-05-19

共1个答案

一尘不染

这很容易以编程方式在您的代码中或以声明性方式在web.config或app.config中实现。

您可以通过编程方式创建代理,如下所示:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", [your proxy port number]);
myproxy.BypassProxyOnLocal = false;
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();

您基本上是将WebProxy对象分配给request对象的proxy属性。这request则将会使用proxy您定义。

要声明性地实现相同的目的,可以执行以下操作:

<system.net>
  <defaultProxy>
    <proxy
      proxyaddress="http://[your proxy address and port number]"
      bypassonlocal="false"
    />
  </defaultProxy>
</system.net>

在您的web.config或app.config中。这将设置所有HTTP请求都将使用的默认代理。根据确切需要实现的内容,您可能需要也可能不需要defaultProxy / proxy元素的某些其他属性,因此请参考文档。

2020-05-19