QT http通信的同步与异步
发布时间
阅读量:
阅读量
当 Qt 与 HTTP 进行通信时,在不同的场景下会选择同步或异步的方式来处理数据请求。
所谓同步意味着,在发送Http请求后,系统持续接收来自服务器的数据流,并在接收到数据之前保持阻塞状态。
所谓异步操作, 即发送一个Http请求后, 程序可以在接收到服务器返回的数据后继续执行任务, 并在这些数据被接收的同时触发相关槽函数来处理这些信息。
同步操作需要在发送请求后配置一个QEnentLoop实例,在异步场景中则只需绑定相应的槽函数即可。
同步代码如下
QUrl url(myurl);
QNetworkReply *reply = quitmanager->get(QNetworkRequest(QUrl(url)));
QEventLoop eventLoop;
connect(quitmanager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
eventLoop.exec(); //block until finish
//reply->readall()
reply->deleteLater();
re
全部评论 (0)
还没有任何评论哟~
