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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить адрес после редиректа, IdHTTP Indy 9  
V
    Опции темы
aldari
  Дата 11.8.2007, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здраствуйте, уважаемые программисты!

Я хочу дописать в свой код возможность определения текущего
адреса после запроса(если сервер меня переправил куда-нибудь).


Код

// первый параметр URL, во второй запоминаем страницу которая приходит на запрос
procedure URLGet(const URL: AnsiString;var pagebody:AnsiString);
var
 HTTP:TidHTTP;
 body:TStringList;
begin
  HTTP:=TidHTTP.Create(nil);
  body:=TStringList.Create;
  try
    // разрешаем перенаправление
    HTTP.HandleRedirects:=true;
    //запрос
    body.Add(HTTP.Get(URL));
    if body.Count<>0 then
      begin
        // помещаем результат запроса в pagebody
       pagebody:=body.Text;
       //здесь как-нибудь узнать откуда я скачал страницу ведь меня перенаправили!
      end 
   finally
     HTTP.Free;
     body.Free;
   end;
end;


По документации следует, что необходимо обратиться к свойству IdHTTP->Response->Location.
Но как я не тистировал это поле всегда остаётся пустым ''. Как мне решить задачу?

Это сообщение отредактировал(а) aldari - 12.8.2007, 16:50
PM MAIL   Вверх
Matematik
Дата 16.8.2007, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(aldari @  11.8.2007,  18:40 Найти цитируемый пост)
По документации следует, что необходимо обратиться к свойству IdHTTP->Response->Location.
Но как я не тистировал это поле всегда остаётся пустым 

Правильно. Оно перезаписывается.
Попробуй посмотреть параметры
  idhttp1.Request.URL
  idhttp1.URL.URI

PM MAIL WWW ICQ   Вверх
aktuba
Дата 17.8.2007, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


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

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



В OnRedirect сохраняй адрес.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
aldari
Дата 19.8.2007, 10:47 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 2 Matematik, aktuba
 Спасибо вам большое!    smile 

 Извините, что долго не отвечал, надо было попробывать и решить вопросы, которые я не осветил здесь.

 Код выглядит теперь так:
  
Код

    body.Add(HTTP.Get(URL));
    if body.Count<>0 then
      begin
        // помещаем результат запроса в pagebody
       pagebody:=body.Text;
       Location:=http.URL.Protocol+'://'+http.URL.Host+http.URL.Path;
      end 
  


 smile  Правильно, обращаться надо к свойству URL.
  Если HandleRedirects в false, то получаем новый адрес и делаем запрос в OnRedirect.

 Еще раз спасибо!
PM MAIL   Вверх
diablist
Дата 11.12.2007, 22:51 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Блин не могу допереть.
Напишите плиз простой пример такого:
Я жму на кнопку, там такое событие:
IdHTTP1.Get('http://www.site.ru/downloads/file.exe');
Теперь оно должно определить что редерект на ftp://site.ru/downloads/file.exe и начать закачку уже отсюда (я так понимаю 
Код

IdFTP.get();
) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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