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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать, есть ли редирект на странице? 
:(
    Опции темы
Rohoss
Дата 2.11.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



Допустим, я ввожу http://www.microsoft.com/ но адрес в браузере меняется на http://www.microsoft.com/en/us/default.aspx.  
Пробовал использовать WebBrowser

Код


procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.microsoft.com/') ;
Edit1.Text:= WebBrowser1.LocationURL;
end; 


таким образом, не работает, но если дождаться полной загрузки станицы, а потом посмотреть свойство WebBrowser1.LocationURL в таком случаи новый адрес показывает.

Как методом можно узнать что страница загрузилась? И можно ли воспользоваться для этого каким-то другим компонентом Инди, потому что зависеть от ИнетЕксплорера не оч. хочется  smile 

Заранее спасибо. 



--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
MetalFan
Дата 2.11.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



можно как-то так:
Код

function CheckRedirect( const AUrl: string ): Boolean;
var
  lIdHTTP: TIdHTTP;
begin
  Result := False;
  lIdHTTP := TIdHTTP.Create(nil);
  try
    lIdHTTP.HandleRedirects := False;
    try
      lIdHTTP.Get( AUrl );
    except
      on E: EIdHTTPProtocolException do
        Result := (E.ErrorCode-300) in [1,2];
    end;
  finally
    lIdHTTP.Free;
  end;
end;



--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Rohoss
Дата 2.11.2007, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



забыл уточнить в первом посте, надо ещё узнать куда ведёт редирект ...


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
DmitryHT
Дата 3.11.2007, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 31.8.2007

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



Цитата(Rohoss @  2.11.2007,  22:47 Найти цитируемый пост)
забыл уточнить в первом посте, надо ещё узнать куда ведёт редирект ...


+1, тоже интересно  smile 
PM MAIL   Вверх
Rohoss
Дата 3.11.2007, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



Похоже, узнать получится только через WebBrowser, так как если редирект выполняется Ява-скрипт кодом то инди не сможет его выполнить, так как не имеет интерпретатора Ява-скрипта. 


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
MetalFan
Дата 4.11.2007, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



редирект через жабаскрипт конечно индей не отловишь, разве что пропаристь страницу и/или жабаскрипт.
а вот куда ведет 301/302 вполне реально узнать

Это сообщение отредактировал(а) MetalFan - 4.11.2007, 14:58


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Rohoss
Дата 4.11.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



Цитата(MetalFan @  4.11.2007,  14:58 Найти цитируемый пост)
редирект через жабаскрипт конечно индей не отловишь, разве что пропаристь страницу и/или жабаскрипт.а вот куда ведет 301/302 вполне реально узнать


Да, но, к сожалению это не единственный вид редиректа. Придётся юзать WebBrowser. А вот как его узнать с помощью этого компонента? 


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
MetalFan
Дата 4.11.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Rohoss @  4.11.2007,  20:34 Найти цитируемый пост)
А вот как его узнать

смотри Response.Location для случая с 301/302.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Rohoss
Дата 5.11.2007, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



но его нужно смотреть, после того как страница загрузится, и все переходы произойдут, а как это узнать? 


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
MetalFan
Дата 5.11.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Rohoss @  5.11.2007,  00:03 Найти цитируемый пост)
а как это узнать?  

что узнать? делаешь Get потом смотришь Response


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Rohoss
Дата 5.11.2007, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



Get в компоненте WebBrowser я так понимаю Webbrowser1.Navigate(), а Response я там вообще не вижу. 
Цитата(MetalFan @  5.11.2007,  09:24 Найти цитируемый пост)
что узнать?

узнать, что страница загрузилась, и переход произошёл.
Я так понял для закачки страницы Webbrowser создаёт отдельный поток, поэтому код в моём первом посте показывает исходную страницу, но если дождаться пока она загрузится и посмотреть WebBrowser1.LocationURL, то увидим, куда произошёл переход. 




--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
MetalFan
Дата 5.11.2007, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Rohoss, я вообщето про idHTTP говорил...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Rohoss
Дата 6.11.2007, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: нет
Всего: 18



Цитата(MetalFan @  5.11.2007,  22:41 Найти цитируемый пост)
Rohoss, я вообщето про idHTTP говорил...


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


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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