我遇到了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编译”消息。已修复。
答案 0 :(得分:2)
您应首先使用Delphi设置卸载与Delphi一起安装的Indy版本 - 然后您可以清除任何剩余的文件。您不应该手动清理文件夹和注册表。 然后你可以安装另一个版本。请注意,某些版本正在“破解”