예제 #1
0
        public PageDownloadResponse Download(Uri url)
        {
            var downloadResponse = new PageDownloadResponse();
            var latencyTimer     = new Stopwatch();

            latencyTimer.Start();

            try
            {
                var request = (HttpWebRequest)WebRequest.Create(url);
                request.AllowAutoRedirect            = true;
                request.MaximumAutomaticRedirections = 7;
                request.UserAgent = configuration.UserAgent;
                request.Accept    = MediaTypeNames.Text.Html;

                var httpWebResponse = (HttpWebResponse)request.GetResponse();

                var responseStream = httpWebResponse.GetResponseStream();

                if (responseStream != null)
                {
                    using (var sr = new StreamReader(responseStream))
                    {
                        downloadResponse.Contents = sr.ReadToEnd();
                        sr.Close();
                    }
                }

                downloadResponse.StatusCode   = httpWebResponse.StatusCode;
                downloadResponse.IsSuccessful = true;
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }

            latencyTimer.Stop();
            downloadResponse.Latency = latencyTimer.ElapsedMilliseconds;

            return(downloadResponse);
        }
예제 #2
0
        public PageDownloadResponse Download(Uri url)
        {
            var downloadResponse = new PageDownloadResponse();
            var latencyTimer = new Stopwatch();
            latencyTimer.Start();

            try
            {
                var request = (HttpWebRequest)WebRequest.Create(url);
                request.AllowAutoRedirect = true;
                request.MaximumAutomaticRedirections = 7;
                request.UserAgent = configuration.UserAgent;
                request.Accept = MediaTypeNames.Text.Html;

                var httpWebResponse = (HttpWebResponse)request.GetResponse();

                var responseStream = httpWebResponse.GetResponseStream();

                if (responseStream != null)
                {
                    using (var sr = new StreamReader(responseStream))
                    {
                        downloadResponse.Contents = sr.ReadToEnd();
                        sr.Close();
                    }
                }

                downloadResponse.StatusCode = httpWebResponse.StatusCode;
                downloadResponse.IsSuccessful = true;
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }

            latencyTimer.Stop();
            downloadResponse.Latency = latencyTimer.ElapsedMilliseconds;

            return downloadResponse;
        }