更新后,Indy不再工作了

时间:2010-07-06 18:24:13

标签: delphi delphi-7 indy

我遇到了Indy的所有问题并且遵循了某人的建议(在stackoverflow)我已经更新到最新版本的Indy - 至少这是我打算做的。

在开始安装之前,我手动删除了包含来自Delphi和注册表中的“indy”字样的所有文件。然后我遵循标准安装程序:http://www.indyproject.org/sockets/Docs/Indy10Installation.en.aspx

现在,下面的代码不再有效了。代码只返回FALSE;

function Download(CONST aSourceURL: string; CONST aDestFileName: string; OUT aErrm: String): Boolean;
VAR
  Stream: TMemoryStream;
  IDAntiFreeze: TIDAntiFreeze;
  fIDHTTP : TIDHTTP;
begin
  fIDHTTP := TIDHTTP.Create(NIL);
//  fIDHTTP.ConnectTimeout:=5000;     <- not recognized
  fIDHTTP.ReadTimeout:= 1000;
  fIDHTTP.HandleRedirects := TRUE;
  fIDHTTP.AllowCookies := FALSE;
  fIDHTTP.Request.UserAgent := 'Mozilla/4.0';
  fIDHTTP.Request.Connection := 'Keep-Alive';
  fIDHTTP.Request.ProxyConnection := 'Keep-Alive';
  fIDHTTP.Request.CacheControl := 'no-cache';
  IDAntiFreeze := TIDAntiFreeze.Create(NIL);

  Stream := TMemoryStream.Create;
  TRY
    TRY
      fIDHTTP.Get(aSourceURL, Stream);
      {
      if FileExists(aDestFileName)
      then DeleteFile(PWideChar(aDestFileName)); }

      Stream.SaveToFile(aDestFileName);
      Result:= TRUE;
    EXCEPT
      On E: Exception do
        begin
          Result:= FALSE;
          aErrm := E.Message + ' (' + IntToStr(fIDHTTP.ResponseCode) + ')';
        end;
    END;
  FINALLY
    Stream.Free;
    IDAntiFreeze.Free;
    fIDHTTP.Free;
  END;
end; 

有什么方法可以看到我安装了哪个版本的Indy?

编辑: 此外,我得到一个“单元idHTTP使用不同版本的IdException.IdException编译”消息。已修复。

1 个答案:

答案 0 :(得分:2)

您应首先使用Delphi设置卸载与Delphi一起安装的Indy版本 - 然后您可以清除任何剩余的文件。您不应该手动清理文件夹和注册表。 然后你可以安装另一个版本。请注意,某些版本正在“破解”