TIdCompressorZLib不';在为Android编译的FireMonkey应用程序中无法工作

TIdCompressorZLib不';在为Android编译的FireMonkey应用程序中无法工作,android,delphi,indy,idhttp,Android,Delphi,Indy,Idhttp,我有一个使用TIdCompressorZLib和TIdHTTP的函数,如下所示: pegar := tidhttp.create(nil); compressor := TIdCompressorZLib.create(pegar); seguro := TIdSSLIOHandlerSocketOpenSSL.create(pegar); pegar.compressor := compressor; pegar.Request.UserAgent := UserAgent; pegar.Re

我有一个使用
TIdCompressorZLib
TIdHTTP
的函数,如下所示:

pegar := tidhttp.create(nil);
compressor := TIdCompressorZLib.create(pegar);
seguro := TIdSSLIOHandlerSocketOpenSSL.create(pegar);
pegar.compressor := compressor;
pegar.Request.UserAgent := UserAgent;
pegar.Request.Accept := '*/*';
pegar.Request.AcceptEncoding := 'gzip, deflate';
pegar.Request.AcceptLanguage := 'pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7';
pegar.HTTPOptions := [hoForceEncodeParams];
pegar.ReadTimeout := 60000;
pegar.ConnectTimeout := 60000;
pegar.HandleRedirects := true;
pegar.IOHandler := seguro;
pegar.CookieManager := cookm;
pagina := pegar.Get(proxima_pagina);
这段代码在为Windows编译时运行良好,但不适用于Android。在Android上,
TIdCompressorZLib
不会解压缩源代码,返回无法读取的字符


有办法解决这个问题吗?我正在使用Delphi10.3。

摆脱
AcceptEncoding
属性的赋值。让
TIdHTTP
根据
压缩器的实际功能在内部为您处理该问题。即使
压缩器
无法处理压缩响应(即
Compressor.IsReady
为False),您也显式授予HTTP服务器发送压缩响应的权限

也就是说,Indy使用动态加载库在非Windows平台上访问ZLib。在本例中,Nix平台上的
libz
dylib(Android运行在Linux之上)可能不在您的Android项目中<如果Indy无法在运行时加载ZLib库,则code>Compressor.IsReady
返回False。因此,请确保部署中存在动态库。如果需要在运行时指定该文件的位置,Indy在
IdZLibHeaders
单元中有一个
IdZLibSetLibPath()
函数