Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IdHTTP.Get, Грамотный отлов ошибки №404 
:(
    Опции темы
Alex
Дата 13.2.2005, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 4
Всего: 162



Как грамотно отловить ошибку отсутствия файла на сервере при скачивании его через IdHTTP.Get?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Snowy
Дата 14.2.2005, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Если файл не html, то можно проверить по первым 5 байтам.
Если файла нет, то вернется 404, которая соответственно = '<HTML'.
Если же запрашивалась HTML страничка, то никакой гарантии нет.
Некоторые сервера вместо 404-й страницы могут выдать что угодно, от совершенно левого текста, то редиректа на страницу хостера.
Можно попробовать анализировать, но гарантии никакой быть не может.
PM MAIL   Вверх
Alex
Дата 14.2.2005, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 4
Всего: 162



А код ошибки никак нельзя получить?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
z-END
Дата 14.2.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 1
Всего: 102



idHTTP.Response не помогает?


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Alex
Дата 14.2.2005, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 4
Всего: 162



z-END, Помогает.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Snowy
Дата 14.2.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Дело в том, что сервер не возвращает ошибку, а тем более ее код.
Если страницы на сервере нет, то он просто вернет страницу 404.
Для клиента она ничем не отличается от обычной страницы.
Дал запрос - получил страницу.
Как правило можно попробовать просканить первые строк 8 текста и поискать что-нить типа
<h2>HTTP Error 404</h2>
В принципе должно быть достаточно просто Error 404.
Но гарантии никакой. Вид страницы целиком зависит от серверной стороны. Быть там может что угодно.
Вот например:
http://kkzzkkss.narod.ru/ - 404 есть, но это еще не признак
http://www.yahoo.com/kkzzkkss.html - анализу не поддается.
mail.ru вообще автоматом редиректит на главную страницу.
Так что определить просто невозможно. Иначе всякие даунлодеры не закачивали бы 404-е страницы.
PM MAIL   Вверх
Alex
Дата 14.2.2005, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 4
Всего: 162



Snowy, это все понятно, но сервак, грубо говоря, мой и качать я с него буду не html документы так, что все нормально. Какие проблемы есть при скачке, html я знаю.

Спасибо за помощь.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
<Spawn>
Дата 16.2.2005, 05:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



На всякий случай:

Код

 idHTTP1.Response.ResponseCode
 idHTTP1.ResponseCode



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1307 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.