Что я должен делать с исключениями "302 найдено" при загрузке с Indy? - PullRequest
5 голосов
/ 20 декабря 2011

Я пытаюсь загрузить файл в строку:

function FetchUrl(const url: string): string;
var
 idhttp : TIdHTTP;
begin
  idhttp := TIdHTTP.Create(nil);
  try
    Result := idhttp.Get(url);
  finally
    idhttp.Free;
  end;
end;

Что не так с этим кодом?Я получаю исключение: HTTP / 1.1 302 Найдено

Ответы [ 2 ]

10 голосов
/ 20 декабря 2011

Установите для свойства TIdHTTP.HandleRedirects значение True. По умолчанию это Ложь.

function FetchUrl(const url: string): string; 
var 
 idhttp : TIdHTTP; 
begin 
  idhttp := TIdHTTP.Create(nil); 
  try 
    idhttp.HandleRedirects := True;
    Result := idhttp.Get(url); 
  finally 
    idhttp.Free; 
  end; 
end; 
2 голосов
/ 20 декабря 2011

Код ответа HTTP 302 означает, что удаленный сервер хочет перенаправить вас на другой URL-адрес, указанный в заголовке «Расположение» ответа.Вам нужно сделать что-то особенное, чтобы взглянуть на заголовок Location и перейти по этому URL.Возможно, в вашей http-библиотеке есть возможность сделать это автоматически, поэтому проверьте документацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...