У меня был весь вид проблем с Инди, и в соответствии с чьими-то рекомендациями (в stackoverflow) я обновил к последней версии Инди - по крайней мере, это - то, что я намеревался сделать.
Прежде, чем начать установку, я вручную удалил все файлы, содержащие слово "инди" от моего Delphi и из реестра. Затем я выполнил стандартную процедуру установки: 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;
Существует какой-либо способ видеть, какую версию Инди я установил?
Править: Также я добираюсь, "Единица idHTTP был скомпилирован с другой версией IdException. IdException" сообщение. Фиксированный.
Сначала вы должны использовать установку Delphi, чтобы удалить версию Indy, установленную вместе с Delphi, - затем вы можете очистить любой оставшийся файл. Не следует начинать с очистки папок и реестра вручную. Затем вы можете установить другую версию. Имейте в виду, что некоторые выпуски "ломаются"