我在办公室工作,要求所有连接都必须通过特定的http代理进行。我需要编写一个简单的应用程序来从Web服务器查询一些值- 如果没有代理,这很容易。如何使C#应用程序可感知代理?如何通过代理建立任何形式的连接?
这很容易以编程方式在您的代码中或以声明性方式在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您定义。
WebProxy
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元素的某些其他属性,因此请参考文档。