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