Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Archy87
4 / 4 / 1
Регистрация: 09.06.2014
Сообщений: 26

WebClient - скачанный файл оказывается битым

27.10.2014, 06:51. Показов 1508. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Возникла такая проблема. Пытаюсь скачать файл по следующей ссылке: http://respect14.ru/price.xls

Качая его через браузер получаем файл размером ~980Кб. Качая его через WebClient получаем файл размером ~520Кб, ну и соответственно файл битый.
Я так подозреваю файл сжат, я попробовал скачать через HttpWebRequest, таким вот способом:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.respect14.ru/price.xls");
            request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream strLocal = response.GetResponseStream();
            byte[] buffer = new byte[response.ContentLength];
            using (FileStream fileStream = File.Create("price.xls"))
            {
                while (true)
                {
                    int read = strLocal.Read(buffer, 0, buffer.Length);
                    if (read <= 0)
                        break;
                    fileStream.Write(buffer, 0, read);
                }
            }
Но опять же получил битый файл.

Пробовал качать с возможностью докачки:

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
static void DownloadFile(string sSourceURL, string sDestinationPath)
        {
            long iFileSize = 0;
            int iBufferSize = 1024;
            iBufferSize *= 1000;
            long iExistLen = 0;
            System.IO.FileStream saveFileStream;
            if (System.IO.File.Exists(sDestinationPath))
            {
                System.IO.FileInfo fINfo =
                   new System.IO.FileInfo(sDestinationPath);
                iExistLen = fINfo.Length;
            }
            if (iExistLen > 0)
                saveFileStream = new System.IO.FileStream(sDestinationPath,
                  System.IO.FileMode.Append, System.IO.FileAccess.Write,
                  System.IO.FileShare.ReadWrite);
            else
                saveFileStream = new System.IO.FileStream(sDestinationPath,
                  System.IO.FileMode.Create, System.IO.FileAccess.Write,
                  System.IO.FileShare.ReadWrite);
 
            System.Net.HttpWebRequest hwRq;
            System.Net.HttpWebResponse hwRes;
            hwRq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(sSourceURL);
            hwRq.AddRange((int)iExistLen);
            System.IO.Stream smRespStream;
            hwRes = (System.Net.HttpWebResponse)hwRq.GetResponse();
            smRespStream = hwRes.GetResponseStream();
 
            iFileSize = hwRes.ContentLength;
 
            int iByteSize;
            byte[] downBuffer = new byte[iBufferSize];
 
            while ((iByteSize = smRespStream.Read(downBuffer, 0, downBuffer.Length)) > 0)
            {
                saveFileStream.Write(downBuffer, 0, iByteSize);
            }
            saveFileStream.Close();
        }


Но вообщем то это и не могло помочь, т.к. response возвращает размер файла равный 520Кб...

Может кто сталкивался с такой проблемой, что еще посоветуете?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.10.2014, 06:51
Ответы с готовыми решениями:

Кеширование результата работы Webclient.DownloadStringAsync() (Windows Phone 8 Webclient)
Всем привет. Приложение для Windows Phone 8. Запускаю под дебагом. Обращаюсь на локальный сервер через...

WebClient не качает файл
WebClient перестал качать файл, раньше все было отлично а теперь не качает. В чем причина? WebClient cl = new WebClient(); ...

Ссылки для скачивания с помощью WebClient.DownloadFile и WebClient.DownloadFileAsync
Ссылки какие должны быть, для скачивания webClient.DownloadFile и webClient.DownloadFileAsync Не пойму какие ссылки должны быть чтоб...

4
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
27.10.2014, 12:52
У меня и через браузер (хром) он битыйполучается.
0
 Аватар для Archy87
4 / 4 / 1
Регистрация: 09.06.2014
Сообщений: 26
28.10.2014, 11:51  [ТС]
Странно как-то... Я качаю хромом 31 версии, файл получается нормальный... Качаю версией пониже, файл тоже битый...
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
28.10.2014, 12:45
Цитата Сообщение от Archy87 Посмотреть сообщение
качаю хромом 31 версии, файл получается нормальный... Качаю версией пониже, файл тоже битый.
Качал версией 38.0.2125.104 m — битый.
Попробуйте отснифать Фиддлером рабочий запрос — может сервер какие-нибудь хитрые заголовки ожидает, которые не все браузеры шлют.
1
 Аватар для Archy87
4 / 4 / 1
Регистрация: 09.06.2014
Сообщений: 26
29.10.2014, 04:31  [ТС]
Спасибо за помощь! Вообщем теперь и на 31й версии качается битый файл, и в фиддлере так же в респонзе размер битого файла.
Пришлось парсить сайт так, впринципе там ajax якорь есть, так, что нормально.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2014, 04:31
Помогаю со студенческими работами здесь

Не качает файл webClient.DownloadFileAsync
имею вот такой код. string log = File.ReadAllText(@&quot;setting.ini&quot;);///тут путь куда сохранять string neis = log +...

WebClient неверно скачивает файл
Всем доброго времени! Суть проблемы : есть хостинг на котором лежит файл. Файл создан из dll библиотеки прочитанной ReadAllBytes и...

WebClient не загружает zip файл с github
Доброе утро. Решил быстренько написать простенький загрузчик и сразу же наткнулся на проблему: webclient ничего не загружает и никаких...

Не сохраняется файл через WebClient
Делаю закачку файла через WebClient. Пытаюсь сохранить песню с названием &quot;Doom:VS – Dead Words Speak&quot; Не сохраняет( Пробовал...

WebClient - файл загружается не полностью
Здравствуйте, Дорогие Форумчане! Столкнулся с такой проблемой при попытке сделать загрузку файла: файл загружается, но не полностью. Файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru