protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = null;
if (Proxy.ProxyType != ProxyTypeEnum.Socks)
{
request = base.GetWebRequest(address);
}
else
{
request = SocksHttpWebRequest.Create(address);
request.Method = base.GetWebRequest(address).Method;
request.ContentLength = base.GetWebRequest(address).ContentLength;
request.ContentType = base.GetWebRequest(address).ContentType;
}
request.Headers.Add("Cookie", Cookies.GetCookieHeader(address));
request.Headers.Add("Accept-Language", AcceptLanguage);
request.Headers.Add("Accept-Encoding", AcceptEncoding);
if (CustomHeaders != null)
{
foreach (string key in CustomHeaders.AllKeys)
{
request.Headers.Add(key, CustomHeaders[key]);
}
}
if (Proxy.ProxyType != ProxyTypeEnum.Socks)
{
var httpRequest = (request as HttpWebRequest);
httpRequest.UserAgent = UserAgent;
httpRequest.Accept = Accept;
httpRequest.Referer = Referer;
httpRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
httpRequest.AllowAutoRedirect = AllowAutoRedirect;
}
else if (Proxy.ProxyType == ProxyTypeEnum.Socks)
{
var socksRequest = (request as SocksHttpWebRequest);
socksRequest.UserAgent = UserAgent;
socksRequest.Accept = Accept;
socksRequest.Referer = Referer;
socksRequest.AllowAutoRedirect = AllowAutoRedirect;
}
request.Timeout = (int) Timeout.TotalMilliseconds;
request.Proxy = Proxy.ProxyItem;
return request;
}