Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Компонент Indy и медиа файлы


Автор: rodendron 5.7.2007, 09:33
Добрый день,

У меня есть:
HTTP : TidHTTP;

mystring = HTTP.Get(mylink);

В mystring я получаю текст. Вопрос в том, что если ссылка начинает загружать mp3 или avi фаил - это очень плохо smile Как быть в этом случае? Пробовал считывать заголовки - зараза пишет, что HTML. Но в приниципе так и есть. У меня просто разрешены редиректы. Так вот редирект запускает mp3 фаил...

Что необходимо сделать, чтобы в случае попытки получения медиаконтента, никаких действий не производилось?

Заранее благодарен.

Автор: stab 5.7.2007, 09:43
у TIdHTTP есть событие OnHeadersAvailable, происходит оно когда заголовки уже скачались, там проверяй ResponseCode, если 200, значит это уже не редирект, а реальные данные, потом проверяй Content-Type если text/html, то ок, иначе VContinue := false и лучше бы ещё дисконнект сделать, т.к. у меня VContinue выставленное в false почему-то не всегда прекращало выполнение запроса.

Автор: rodendron 5.7.2007, 09:51
Немного не понял, мне, после редиректа нужны данные.
Мои дествия таковы.

1) Захожу на страничку
2) Хватаю редирект
3) Начинается открытие медиафайла

То есть, редирект мне нужен, но вот от третьего пункта хотелось бы отказаться.

Код

 try
   btext := HTTP.Get(link);
 except
   on e:Exception do
     begin
       HTTP.Disconnect;
       Result := 1;
     end;
 end;

Автор: stab 5.7.2007, 10:50
сделай как написано ;) обработчик на событие OnHeadersAvailable повесил уже?

рекомендую к параллельному прочтению спецификацию протокола HTTP и хелп по TIdHTTP.

Автор: rodendron 5.7.2007, 14:23
Я конечно сильно туплю, но как его вешать? Можно код? (

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)