2014-12-27 305 views
0

是否可以添加到使用C#编写的整个应用程序中使用代理。 主要是因为我粘贴在下面的类。但我也使用了通常的WebRequest的几倍。C#如何为所有https请求设置代理

我想程序为每个将执行的连接使用代理。可能吗?

using System; 
using System.Diagnostics; 
using System.Net; 

namespace TestV.1.0 
{ 




    // To jest stworzenie klasy HttpHandler, dzieki której możemy pracować na http. Dziedziczy ona z klasy WebClient 
    internal class HttpHandler : WebClient 
    { 
     //Tworzenie obiektu który będzie przechochowywał cookiesy 
     public CookieContainer _container = new CookieContainer(); 

     protected override WebRequest GetWebRequest(Uri address) 
     { 
      var request = base.GetWebRequest(address); 

      if (request is HttpWebRequest) 
      { 
       (request as HttpWebRequest).CookieContainer = _container; 
      } 
      return request; 
     } 

     protected override WebResponse GetWebResponse(WebRequest request) 
     { 
      var response = base.GetWebResponse(request); 
      if (response != null) 
      { 
       var uriBuilder = new UriBuilder(response.ResponseUri.Scheme, response.ResponseUri.Host); 
       _container.SetCookies(uriBuilder.Uri, _container.GetCookieHeader(request.RequestUri)); 
      } 
      return response; 
     } 

     public void ClearCookies() 
     { 
      _container = new CookieContainer(); 
     } 
    } 

} 
+0

喜欢的东西设置[代理](http://msdn.microsoft.com/en-us/library/system。 net.webrequest.proxy(v = vs.110)的.aspx) – rene 2014-12-27 17:42:56

回答

0

您可以设置defaultProxy在Web.config或应用程序的App.config使用。

有关更多信息,请参阅this article

简答:您可以在您的全局配置文件中进行设置。

<configuration> 
    <system.net> 
     <defaultProxy> 
      <proxy 
       proxyaddress="http://192.168.1.10:3128" 
       bypassonlocal="false" /> 
     </defaultProxy> 
    </system.net> 
<configuration> 
0

您可以更改所有的WebRequest默认代理与this static property

WebRequest.DefaultWebProxy = new WebProxy("http://proxyserver:80/", false);