地址:https://github.com/aeagean/QtNetworkService
作者: aeageanQt君
简介:使用Builder模式封装网络请求接口get, post, put.还加入lambda特性用于网络请求响应
0.寻找这个库的背景
主要是用户的网络可能不稳定,或者存在波动导致暂时断开的情况。此时为了保证下载成功,且减少下载时间,断点续传就很有用了。
1. 如何使用?
- 采用header-only的方式实现。只需在你的工程中包含 src 目录的 HttpClient.h 文件即可。
2. 使用示例
HttpClient client;
client.get("https://qthub.com")
.onSuccess([](QString result) { qDebug()<<"result:"<<result; })
.onFailed([](QString err) { qDebug()<<"error:"<<err; })
.exec();
3. 支持的特性
- 使用信号槽的方式实现成功与失败的事件处理
- 使用匿名函数的方式实现成功与失败的事件处理
- 以信号槽的方式获取下载进度
- 以匿名函数的方式获取下载进度
- 支持Post上传文件并获取上传进度
- 支持下载文件并获取下载进度
- 自定义超时时间和超时处理
- 可以添加head、params、body
- 支持失败重试
- 支持重复请求
- 支持身份验证
4. 实测效果
- 断网之后再连接网络,会自动重连,很棒。
- 如果是需要VPN才能访问的地址,未开VPN的情况下,开启了下载,此时再开启VPN也是无法下载的。应该是在别的地方需要再设置,暂未深入研究这个。