使用Indy下载时,我应该怎么做“302 Found”例外?

时间:2011-12-20 15:35:32

标签: delphi indy

我正在尝试将文件下载到字符串:

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 Found

2 个答案:

答案 0 :(得分:10)

TIdHTTP.HandleRedirects属性设置为True。默认情况下为False。

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; 

答案 1 :(得分:2)

HTTP响应代码302表示远程服务器希望将您重定向到另一个URL,该URL在响应的Location标头中指定。您需要做一些特殊的事情来查看Location标头并转到该URL。也许您的http库有一个自动执行此操作的选项,因此请查看文档。