idhttp 的内存泄露问题

bants 2017-05-03 02:56:26


procedure TForm1.Button1Click(Sender: TObject);
var
HTTP1: TidHTTP;
html , url : string;
sslIOHandler : TIdSSLIOHandlerSocket;
RespData: TStringStream;
begin
HTTP1 := TidHTTP.Create(nil);
RespData := TStringStream.Create('');
try
sslIOHandler := TIdSSLIOHandlerSocket.create(nil);
sslIOHandler.SSLOptions.Method := sslvSSLv23;
sslIOHandler.FreeOnRelease;
http1.IOHandler := sslIOHandler;
HTTP1.HandleRedirects := True;

url := 'https://www.amazon.cn/';

//html := http1.Get('https://www.amazon.cn/mn/detailApp?asin=B00HUNPKEG');

http1.Get(URL, RespData);
html := respData.DataString;


//html := http.Get('https://192.168.1.1');
//memo1.Lines.Add(utf8Decode(html));
Memo1.Lines.Add(html);

finally
FreeAndnil(RespData);
FreeAndNil(sslIOHandler);
freeAndNil(http1);
end;
end;



上面这段代码,用FASTMM检测的时候,总是会报一个内存泄露,具体如下:

该内存块分配于线程 0x9A6C, 当时的堆栈跟踪(返回地址):
402983 [system.pas][System][@GetMem][2447]
4033DF [system.pas][System][TObject.NewInstance][8368]
403766 [system.pas][System][@ClassCreate][9027]
47DD32 [IdSSLOpenSSL.pas][IdSSLOpenSSL][TIdSSLCipher.Create][1580]
47DC4A [IdSSLOpenSSL.pas][IdSSLOpenSSL][TIdSSLSocket.GetSSLCipher][1403]
47DA1A [IdSSLOpenSSL.pas][IdSSLOpenSSL][TIdSSLSocket.Connect][1354]
47CDAE [IdSSLOpenSSL.pas][IdSSLOpenSSL][TIdSSLIOHandlerSocket.OpenEncodedConnection][919]
47C92A [IdSSLOpenSSL.pas][IdSSLOpenSSL][TIdSSLIOHandlerSocket.ConnectClient][738]
47E1C8 [IdTCPClient.pas][IdTCPClient][TIdTCPClient.Connect][73]
482077 [idhttp.pas][IdHTTP][TIdCustomHTTP.CheckAndConnect][789]
4823A6 [idhttp.pas][IdHTTP][TIdCustomHTTP.ConnectToHost][870]

该内存块当前被用于一个属于以下类的对象: TIdSSLCipher

分配号码是: 807


有没有大神知道这种情况的,该如何释放?

这个错误只有在HTTPS方式读取时才会出现,而且并非虚报,当程序持续运行一段时间后,就会提示 out of memory。
...全文
536 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2017-06-07
  • 打赏
  • 举报
回复
就是这样,怀疑源代码问题?
joanagle 2017-06-07
  • 打赏
  • 举报
回复
我的程序也会这样,也想知道原因
bants 2017-05-17
  • 打赏
  • 举报
回复
还没有解决呢
zhujinqiang 2017-05-09
  • 打赏
  • 举报
回复
还没有解决吗?
bants 2017-05-03
  • 打赏
  • 举报
回复
没有人知道么?

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧