chupakabra
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору OlegChernavin Привет, возникло несколько комментариев к программе: 1. В процессе закачки заметил что в списке соединений иногда появляются что-то типа: 403 Forbidden. Как я понял, файлы, для которых сервер вернул код ошибки, не были закачаны, причем судя по всему OE сдается сразу, даже не пытаясь выполнить указанное в настройках число попыток. Это плохо, т.к. в проекте на 100000 файлов вручную нереально выявить какие файлы были закачаны, а какие нет - хотелось бы чтобы программа хотя бы сообщала где-то что именно она не смогла закачать и по какой причине. Пробовал для этого включать лог, но он тут же заполняется огромным количеством информации, заметить там что-то нереально. Вообще, хорошая качалка не должна сдаваться независимо от того какой ответ вернул сервер. К примеру, я не раз встречал сервера, которые возвращают код 404 чтобы ограничить число одновременных подключений, тогда как файл реально существует. Думаю лучший алгоритм в этом случае - выполнить указанное в настройках количество попыток, причем при каждой неудачной попытке перемещать файл в конец очереди (т.к. может конечно быть и так что сервер не врет и файла действительно нет ), ну а после того как число попыток исчерпано занести файл и причину отказа в лог, так чтобы пользователь мог наглядно увидеть что и по какой причине не было скачано. 2. Заметил такую хитрую вещь: есть несколько ссылок разного вида, все он устанавливают куку и затем возвращают код 302 Moved temporarily, при этом URL файла - один и тот же. Т.е. сервер запоминает в сессионных данных какой именно контент возвращать по этому URL. Таким образом получается что OE закачивает первую ссылку, а остальные нет, т.к. он думает что они уже закачаны раз есть файл с таким именем. Если возможно, было бы неплохо научить программу этой хитрости. 3. Заметил что иногда довольно сложно остановить проект. Т.е. сколько не давлю на кнопку Stop - счетчик файлов продолжает что-то отсчитывать. Закрываю окно - процесс остается висеть в памяти. Единственный выход - убить процесс из Task Manager. |