Webclient, gzip - приходит только два запроса - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Я не могу понять где я запутался и когда. Суть в чем. Разбираю сайт, странички возвращаются в gzip. Gzip разбираю, в отладчике видел хороший html. Но вот беда, когда разбираю, я получаю только 2 ответа от сервера. Если же не работаю с gzip, то я получаю ответов столько, сколько мне нужно. Собсно код: Когда пытаюсь разобрать:
            string AuctionsCount = foo.Children[2].InnerText;
            AuctionsCount = AuctionsCount.Remove(AuctionsCount.Length - 2);
            for(int j = 1; j < Convert.ToInt32(AuctionsCount); j++)
            {
                Thread.Sleep(600);
                using (WebClient MyWebClient = new WebClient())
                {
                    MyWebClient.Headers.Add("Host", "www.testserver.ru");
                    MyWebClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
                    MyWebClient.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
                    MyWebClient.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
                    MyWebClient.Headers.Add("Accept-Encoding", "gzip, deflate");
                    HtmlAgilityPack.HtmlDocument TablePage = new HtmlAgilityPack.HtmlDocument();
                    Console.WriteLine("Все зашибись");
                    GZipStream DecompressedStream = new GZipStream(MyWebClient.OpenRead("%запрос%"), CompressionMode.Decompress);
                    TablePage.Load(DecompressedStream);
                 }
            }
Когда не трогаю и все хорошо
            string AuctionsCount = foo.Children[2].InnerText;
            AuctionsCount = AuctionsCount.Remove(AuctionsCount.Length - 2);
            for(int j = 1; j < Convert.ToInt32(AuctionsCount); j++)
            {
                Thread.Sleep(600);
                using (WebClient MyWebClient = new WebClient())
                {
                    MyWebClient.Headers.Add("Host", "www.testserver.ru");
                    MyWebClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
                    MyWebClient.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
                    MyWebClient.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
                    MyWebClient.Headers.Add("Accept-Encoding", "gzip, deflate");
                    HtmlAgilityPack.HtmlDocument TablePage = new HtmlAgilityPack.HtmlDocument();
                    Console.WriteLine("Все зашибись");
                    var CompressedStream = MyWebClient.OpenRead("%запрос%");
                    TablePage.OptionAddDebuggingAttributes = true;
                    TablePage.OptionExtractErrorSourceText = true;
                    TablePage.Load(CompressedStream); 
                 }
             }
Что не дает MyWebClient'у по нормальному получать странички в первом случае? Был бы рад понять

Решение задачи: «Webclient, gzip - приходит только два запроса»

textual
Листинг программы
using(GZipStream DecompressedStream = new GZipStream(MyWebClient.OpenRead("%запрос%"), CompressionMode.Decompress))
{
   DoWork();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы