Использование GZip для сжатия текста веб-страницы - C#
Формулировка задачи:
Добрый вечер! Прошу вашей помощи. Решения из похожих тем мне не помогли.
Есть метод
Выдается следующая ошибка
все парсит как надо.
Листинг программы
- public static string GetURL(string address)//получение текста со страницы
- {
- //using (var client = new MyWebClient())
- using (var client = new WebClient())
- {
- //WebClient берет Proxy из конфигурационных файлов Internet Explorer. Отключаем
- client.Proxy = null;
- client.Credentials = CredentialCache.DefaultNetworkCredentials;
- client.Encoding = Encoding.UTF8;
- client.Headers[HttpRequestHeader.AcceptEncoding] = "gzip";
- using (GZipStream responseStream = new GZipStream(client.OpenRead(address), CompressionMode.Decompress))
- {
- using (StreamReader reader = new StreamReader(responseStream))
- { return reader.ReadToEnd(); }
- }
- }
- }
Неправильное магическое число в заголовке GZip. Передача должна идти в поток GZip.
В чем дело, никак не могу понять. Ощущение, что в поток GZip ничего не попадает. Хотя, когда использую
Листинг программы
- client.DownloadString(address);
Решение задачи: «Использование GZip для сжатия текста веб-страницы»
textual
Листинг программы
- class MyWebClient : WebClient
- {
- protected override WebRequest GetWebRequest(Uri address)
- {
- WebRequest webReq = base.GetWebRequest(address);
- HttpWebRequest httpReq = webReq as HttpWebRequest;
- if (httpReq == null) return webReq;
- httpReq.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
- return httpReq;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д