| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > IdHTTP.Get |
| Автор: Alex 13.2.2005, 23:57 |
| Как грамотно отловить ошибку отсутствия файла на сервере при скачивании его через IdHTTP.Get? |
| Автор: Snowy 14.2.2005, 08:13 |
| Если файл не html, то можно проверить по первым 5 байтам. Если файла нет, то вернется 404, которая соответственно = '<HTML'. Если же запрашивалась HTML страничка, то никакой гарантии нет. Некоторые сервера вместо 404-й страницы могут выдать что угодно, от совершенно левого текста, то редиректа на страницу хостера. Можно попробовать анализировать, но гарантии никакой быть не может. |
| Автор: Alex 14.2.2005, 16:32 |
| А код ошибки никак нельзя получить? |
| Автор: z-END 14.2.2005, 17:15 |
| idHTTP.Response не помогает? |
| Автор: Alex 14.2.2005, 17:26 |
| z-END, Помогает. |
| Автор: Snowy 14.2.2005, 17:55 |
| Дело в том, что сервер не возвращает ошибку, а тем более ее код. Если страницы на сервере нет, то он просто вернет страницу 404. Для клиента она ничем не отличается от обычной страницы. Дал запрос - получил страницу. Как правило можно попробовать просканить первые строк 8 текста и поискать что-нить типа <h2>HTTP Error 404</h2> В принципе должно быть достаточно просто Error 404. Но гарантии никакой. Вид страницы целиком зависит от серверной стороны. Быть там может что угодно. Вот например: http://kkzzkkss.narod.ru/ - 404 есть, но это еще не признак http://www.yahoo.com/kkzzkkss.html - анализу не поддается. mail.ru вообще автоматом редиректит на главную страницу. Так что определить просто невозможно. Иначе всякие даунлодеры не закачивали бы 404-е страницы. |
| Автор: Alex 14.2.2005, 19:20 |
| Snowy, это все понятно, но сервак, грубо говоря, мой и качать я с него буду не html документы так, что все нормально. Какие проблемы есть при скачке, html я знаю. Спасибо за помощь. |
| Автор: <Spawn> 16.2.2005, 05:40 | ||
На всякий случай:
|