Показать сообщение отдельно
  #1  
Старый 20.12.2012, 22:15
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию idhttp Ошибка сервера 307

Получаю текстовый файлик с сайта (для проверки обновления) через idhttp
s:=idHTTP1.Get('ссылка_удалена');
раньше работало ок,сегодня появилась такая ошибка
HTTP/1.1 307 Temporary Redirect
погуглив,узнал что это ошибка означает что файл временно перемещён и в ответе приходит временная ссылка для получения файла.и послыается она в IdHTTP1.Response.Location.
изменил код:
Код:
s:=idHTTP1.Get('ссылка_удалена',[307]); //тут в случае ошибки 307 не выскочит Exception
  if IdHTTP1.Response.Location <> '' then begin  // если пришел редирект то перходим по нему   
      s := IdHTTP1.Response.Location;
      s:=idHTTP1.Get(s);
      
      end;
то есть по идее получается что я пытаюсь скачать файл,и в случае ошибки 307 я получаю новую ссылку и скачиваю файл по ней. запустил прогу,
получил новый юрл во время ошибки
http://ссылка_удалена/vers.txt?T9C7j...550a96 5da5=1
но на этом шаге:
s:=idHTTP1.Get(s);
опять получил ошибку 307.
Как быть? ведь вроде переходу по новой ссылке.
Браузеры успешно открывают файл по ссылке

PS: админы не сочтите ссылку за рекламу,после решения проблемы ссылки удалю
Ответить с цитированием