BetterHttpClient.HttpClient.GetWebRequest C# (CSharp) Метод

GetWebRequest() защищенный Метод

protected GetWebRequest ( Uri address ) : WebRequest
address System.Uri
Результат System.Net.WebRequest
        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;
        }