更新后Indy不再工作
Posted
技术标签:
【中文标题】更新后Indy不再工作【英文标题】:Indy is not working anymore after update 【发布时间】:2010-07-06 18:24:13 【问题描述】:我在使用 Indy 时遇到了各种各样的问题,并且按照某人的建议(在 *** 上)我已经更新到最新版本的 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?
编辑:
我还收到“Unit idHTTP was compiled with a different version of IdException.IdException”消息。已修复。
【问题讨论】:
听起来您的安装很糟糕,例如您在安装新版本之前没有完全删除旧版本(仅查找名称中带有“indy”的文件是不够的)。 安装现在可以工作了(确实我必须很好地清理Delphi文件夹和注册表。但是,代码仍然没有下载文件。 究竟是什么不工作?你有错误吗?文件数据错误?你需要更具体。无论如何,我建议您摆脱 TIdAntiFreeze 并将下载移动到单独的工作线程中。如果你需要 Download() 是一个阻塞函数,它可以等待线程完成它的工作。 【参考方案1】:您应该首先使用 Delphi 安装程序来卸载随 Delphi 安装的 Indy 版本 - 然后您可以清理任何剩余的文件。您不应该从手动清理文件夹和注册表开始。 然后你可以安装另一个版本。请注意,有些版本是“破坏性的”
【讨论】:
这就是我不喜欢 Jedi 和 Indy 等大型 3rd 方库的原因。感谢您的回答。 +1以上是关于更新后Indy不再工作的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 Xcode 插件(如 clang 格式)在更新到新版本的 Xcode 后不再工作了?
Laravel 4.2 artisan CLI 在作曲家更新后不再工作
Discord webhook embed php curl 在最近的 Discord 更新后不再工作
为啥我的 Xcode 插件(例如 clang 格式)在更新到新版本的 Xcode 后,与 Alcatraz 一起安装不再工作?