Indy 10. TIdHTTP возвращает 302-ю ошибку

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
zozuliar
новенький
Сообщения: 35
Зарегистрирован: 09.02.2014 21:56:58

Indy 10. TIdHTTP возвращает 302-ю ошибку

Сообщение zozuliar »

Здравствуйте.
Положил я на форму TIdHTTP, TEdit и TButton.
TEdit'у по умолчанию прописал значение свойства Text "http://ya.ru"
По нажатию кнопки Button1 выполняю:

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  stream: TMemoryStream;
begin
  stream:= TMemoryStream.Create;
  showMessage(eUrl.Text);
  IdHttp1.Get(eUrl.Text, stream);
  stream.SaveToFile('g:a.txt');
end;     

Если урл в Эдите не менять - всё хорошо, а если прописываю в Эдите другой урл, другого сайта вместо ya.ru (например, yandex.ru) - получаю ошибку "302 Found". Как мне скачивать содержимое произвольного урла в свой файл a.txt?

Добавлено спустя 5 минут 1 секунду:
Win7 32bit
Lazarus 1.0.14
FPC 2.6.2

Добавлено спустя 26 минут 48 секунд:
когда я стал запрашивать не корневые страницы популярных сайтов, а прямые урлы обычных картинок на сайтах в зоне *.com.ua - всё заработало. Странно.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ZeUsM
новенький
Сообщения: 57
Зарегистрирован: 08.11.2010 12:55:35
Откуда: Нерезиновая

Сообщение ZeUsM »

Возможно проблема с тем, что на некоторых сайтах в корне указан редирект.
Включайте в компоненте

Код: Выделить всё

idhttp.HandleRedirects := True;
и попробуйте с таким включенным параметром, 302 ошибка должна исчезнуть.
zozuliar
новенький
Сообщения: 35
Зарегистрирован: 09.02.2014 21:56:58

Сообщение zozuliar »

Спасибо
Ответить