是否可以添加到用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();
}
}
}
答案 0 :(得分: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>
答案 1 :(得分:0)
您可以使用this static property更改所有WebRequest的默认代理:
WebRequest.DefaultWebProxy = new WebProxy("http://proxyserver:80/", false);