예제 #1
0
        byte[] ReadResponseStream(HttpWebResponse response, TimingParams param)
        {
            DateTime start           = DateTime.Now;
            bool     useDownlTimeout = param.DownloadTimeout == Timeout.Infinite ? false : true;

            byte[] data   = null;
            byte[] buffer = new byte[8 * 1024];

            try
            {
                using (Stream stream = response.GetResponseStream())
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        int readed;
                        while ((readed = stream.Read(buffer, 0, buffer.Length)) > 0 && ms.Length < param.MaxPageSize)
                        {
                            ms.Write(buffer, 0, readed);
                            if (useDownlTimeout && (DateTime.Now - start).TotalMilliseconds > param.DownloadTimeout)
                            {
                                break;
                            }
                        }
                        data = ms.GetBuffer();
                    }
                }
                return(data);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #2
0
        HttpWebRequest CreateRequest(Uri uri, CookieOptions cookieOptions, TimingParams param, RequestParams requestParam, RatedProxy proxy, CookieCollection insertCookie)
        {
            HttpWebRequest request = HttpWebRequest.Create(uri) as HttpWebRequest;

            request.Headers     = requestParam.Headers;
            request.UserAgent   = requestParam.UserAgent;
            request.Host        = uri.Host;
            request.Accept      = requestParam.Accept;
            request.ContentType = requestParam.ContentType;
            //request.Referer = "http://www.google.com/";
            request.AllowAutoRedirect      = requestParam.UseRedirect;
            request.KeepAlive              = requestParam.KeepAlive;
            request.AutomaticDecompression = System.Net.DecompressionMethods.Deflate | System.Net.DecompressionMethods.GZip;
            request.Proxy            = proxy;
            request.Timeout          = param.RequestTimeout;
            request.ReadWriteTimeout = param.GetStreamTimeout;
            request.CookieContainer  = BuildCookieContainer(cookieOptions, insertCookie);
            request.Method           = requestParam.Method;

            return(request);
        }
예제 #3
0
        byte[] ReadResponseStream(HttpWebResponse response, TimingParams param)
        {
            DateTime start = DateTime.Now;
            bool useDownlTimeout = param.DownloadTimeout == Timeout.Infinite ? false : true;
            byte[] data = null;
            byte[] buffer = new byte[8 * 1024];

            try
            {
                using (Stream stream = response.GetResponseStream())
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        int readed;
                        while ((readed = stream.Read(buffer, 0, buffer.Length)) > 0 && ms.Length < param.MaxPageSize)
                        {
                            ms.Write(buffer, 0, readed);
                            if (useDownlTimeout && (DateTime.Now - start).TotalMilliseconds > param.DownloadTimeout)
                                break;
                        }
                        data = ms.GetBuffer();
                    }
                }
                return data;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #4
0
        HttpWebRequest CreateRequest(Uri uri, CookieOptions cookieOptions, TimingParams param, RequestParams requestParam, RatedProxy proxy, CookieCollection insertCookie)
        {
            HttpWebRequest request = HttpWebRequest.Create(uri) as HttpWebRequest;

            request.Headers = requestParam.Headers;
            request.UserAgent = requestParam.UserAgent;
            request.Host = uri.Host;
            request.Accept = requestParam.Accept;
            request.ContentType = requestParam.ContentType;
            //request.Referer = "http://www.google.com/";
            request.AllowAutoRedirect = requestParam.UseRedirect;
            request.KeepAlive = requestParam.KeepAlive;
            request.AutomaticDecompression = System.Net.DecompressionMethods.Deflate | System.Net.DecompressionMethods.GZip;
            request.Proxy = proxy;
            request.Timeout = param.RequestTimeout;
            request.ReadWriteTimeout = param.GetStreamTimeout;
            request.CookieContainer = BuildCookieContainer(cookieOptions, insertCookie);
            request.Method = requestParam.Method;

            return request;
        }