THTTPClient中的分段错误

时间:2019-07-16 12:45:00

标签: android delphi firemonkey

我在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;

0 个答案:

没有答案