做了个qt小程序,使用QNetworkRequest的post给指定网页发送数据,然后
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));
但是发现一个问题,当获取的http数据大到一定程序后,程序就会假死关闭!
本人菜鸟,该怎么办?
------解决方案--------------------
用抓包软件看看,我觉得应该是网页服务器的问题,你给他发了数据,数据包没有response,这种情况的话最好把你的程序放入线程中去跑,这样即使服务器出了问题你也不影响界面的其他操作
------解决方案--------------------
QNetworkAccessManager 这个本身就是在线程里面跑的,他的情况是因为一次性把数据读入,导致内存不足的原因,在PC机上应该很难发生这种情况。你可以分批量下载,不要一次性把数据全下载下来。
------解决方案--------------------
你关联一下那个下载进度的信号,然后在下载进度的那个槽函数里面进行读取,这样就不会卡死了。这样会一有数据就行读写。
------解决方案--------------------
处理readReady信号