C# C如何为所有https请求设置代理

C# C如何为所有https请求设置代理,c#,web,proxy,C#,Web,Proxy,是否可以将代理添加到用C编写的整个应用程序中。 主要是因为我贴在下面的班级。但我也多次使用通常的WebRequest 我希望程序为每个将要执行的连接使用代理。可能吗 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

是否可以将代理添加到用C编写的整个应用程序中。 主要是因为我贴在下面的班级。但我也多次使用通常的WebRequest

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

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

}

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

有关更多信息,请参阅

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

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

您可以通过以下方式更改所有WebRequest的默认代理:

有点像布景
WebRequest.DefaultWebProxy = new WebProxy("http://proxyserver:80/", false);