QNetworkAccessManager get post 内存不断增加
最近在用Qt的QNetworkAccessManager,用一个定时器去不停的get一个网址,发现内存不断增加,搜了一下,发现要用deleteLater,但是还是没用,奇怪的是不同的网址结果不一样,像百度主页,腾讯主页,都没问题,没有内存一直增加的现象。没有用定时器,用了一个按钮,在任务管理器可以很清楚的看见,每点一次,内存还有句柄数都在不断增加。
程序不变,只要改一个网址,就没问题了。测试的网址一个是百度主页,另一个是QQ空间登录的时候检测是否需要输入验证码的,随便写个号码测试一下。
百度谷歌了很久,都是说要 reply->deleteLater();,官方文档也是这么说的,但是确实没用啊,各位大神,Help
测试源码,很简单的一个:
程序不变,只要改一个网址,就没问题了。测试的网址一个是百度主页,另一个是QQ空间登录的时候检测是否需要输入验证码的,随便写个号码测试一下。
百度谷歌了很久,都是说要 reply->deleteLater();,官方文档也是这么说的,但是确实没用啊,各位大神,Help
测试源码,很简单的一个:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
manager = new QNetworkAccessManager;
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onfinished(QNetworkReply*)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::onfinished(QNetworkReply *reply)
{
qDebug() << reply->readAll();
reply->abort();
reply->close();
reply->deleteLater();
}
void MainWindow::on_pushButtonLogin_clicked()
{
isNeedVcode();
}
int MainWindow::isNeedVcode()
{
QNetworkRequest request;
//QString strurl = QString("http://www.baidu.com");
QString strurl = QString("http://check.ptlogin2.qq.com/check?&uin=870603663");
request.setUrl(QUrl(strurl));
//
request.setRawHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)");
//
manager->get(request);
return 0;
}
...全文
相关推荐
QT C++ http get、post 同步异步请求
QT的QNetworkAccessManager同样提供了post()函数,同步和异步用法与GET类似:```cpp// 同步POST请求QNetworkReply* reply = manager->
qt post,get进行表单提交的demo
Qt的QNetworkAccessManager类在HTTP请求中的作用。2. POST和GET请求的区别及其在Qt中的实现方式。3.
QT post,get上传下载方法源码
本篇文章将深入讲解如何使用QT中的POST和GET方法进行网络数据的上传与下载,并提供相关源码示例。首先,GET和POST是HTTP协议中最常见的两种请求方法。
QT使用POST传递数据
同时,确保正确管理内存和网络资源,避免内存泄漏和不必要的网络请求。
HTTP_COMI_GET_AND_POST
在Qt中,我们可以使用QNetworkAccessManager类来处理HTTP请求,它提供了方便的方法来发起GET和POST操作。


