我在Android上的THTTPClient
组件上遇到了一个奇怪的问题。当我在数据模块中放置一个THTTPClient
组件并执行代码时,一切都可以正常运行,但是,如果我在运行时创建该组件,则在关闭应用程序时会出现分段错误(11)错误。我正在使用线程访问我的服务器。仅当我关闭应用程序时才会发生此错误。我正在使用Rad Studio 10.3.1。
LThread := TThread.CreateAnonymousThread(
procedure
var
pegar: THTTPClient;
ts : TStringlist;
liberado:string;
begin
try
pegar := THTTPClient.create;
ts := TStringlist.create;
pegar.Accept :=
'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
pegar.AcceptLanguage :=
'pt-BR,en-US;q=0.8,pt;q=0.5,en;q=0.3';
pegar.ContentType := 'application/x-www-form-urlencoded';
ts.Add('email=' + username);
ts.Add('password=' + senha);
liberado := pegar.Post(caminho_api +
'authentication/login', ts).ContentAsString(TEncoding.UTF8);
finally
ts.free;
pegar.free;
end;
end);
LThread.FreeOnTerminate := true;
LThread.OnTerminate:=terminate_autenticacao;
LThread.Start;
但是,如果我将组件放入DataModule并以其他方式进行操作,则不会发生此错误:
LThread := TThread.CreateAnonymousThread(
procedure
var
ts : TStringlist;
liberado:string;
begin
try
ts := TStringlist.create;
datamodule.pegar.Accept :=
'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
datamodule.pegar.AcceptLanguage :=
'pt-BR,en-US;q=0.8,pt;q=0.5,en;q=0.3';
datamodule.pegar.ContentType := 'application/x-www-form-urlencoded';
ts.Add('email=' + username);
ts.Add('password=' + senha);
liberado := datamodule.pegar.Post(caminho_api +
'authentication/login', ts).ContentAsString(TEncoding.UTF8);
finally
ts.free;
end;
end);
LThread.FreeOnTerminate := true;
LThread.OnTerminate:=terminate_autenticacao;
LThread.Start;