有时候使用多个有顺序Http请求时(下一个请求需要上一个请求的内容),这时候阻塞功能非常有用。
接口
- 阻塞当前线程,并进入事件循环。
HttpRequest &block();
实现
- 使用QEventLoop实现。
QEventLoop loop; Q ::connect(m_networkReply, SIGNAL(finished()), &loop, SLOT(quit())); loop.exec(); /* 阻塞当前线程,如在主线程不会冻结界面。*/
示例
static HttpService http;
http.get("https://qtbig.com")
.onResponse([](QByteArray result) { /* 接收数据 */
qDebug() << "Result: " << result.left(100);
})
.onResponse([](qint64 recv, qint64 total) { /* 接收进度 */
qDebug() << "Total: " << total << "; Received: " << recv;
})
. ([](QString errorStr) { /* 错误处理 */
qDebug() << "Error: " << errorStr;
})
.block() /* 阻塞操作 */
.exec();关于更多
- 源码地址:https://github.com/aeagean/QtNetworkService
- Qt开源网络库[1]-介绍
- Qt开源网络库[2]-接口篇
- Qt开源网络库[3]-原理篇上
- Qt开源网络库[4]-原理篇下
- Qt开源网络库[5]-lambda支持
- Qt开源网络库[6]-超时功能
继续阅读与本文标签相同的文章
上一篇 :
shadow dom
下一篇 :
JS中== 、===的用法和区别
-
重磅!腾讯5G探索地图揭秘
2026-05-23栏目: 教程
-
docker图形化管理工具Portainer
2026-05-23栏目: 教程
-
小程序scroll-view滚动时高亮对应区域的吸顶tab项
2026-05-23栏目: 教程
-
《LabVIEW宝典(第2版)》| 每日读本书
2026-05-23栏目: 教程
-
“共享共谋共赢 共建IT生态圈”重庆IT合作伙伴交流会
2026-05-23栏目: 教程
