linux下qt网络编程 qnetworkreply,QT网络编程之文件下载 QNetworkRequest QNetworkReply QNetworkAccessManager...
void FileDownLoad::start()
{
m_file = new QFile(m_filePath, this);//m_filePath下载地址
if (!m_file->open(QIODevice::WriteOnly)) {
emit result(false, tr("Write file error!\n") + m_file->errorString());
return;
}
QUrl u(m_url);
QNetworkRequest request(u);
QNetworkReply *reply = m_accessManager.get(request);
m_reply = reply;
connect(reply, SIGNAL(finished()), this, SLOT(onReplyFinished()));//处理下载结果
connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(updateDataReadProgress(qint64,qint64)));//更新下载进度
}
void FileDownLoad::onReplyFinished()
{
QNetworkReply *reply = dynamic_cast (sender());
if (!reply){
emit result(false, "reply is null!");
return;
}
if (reply->error() != QNetworkReply::NoError) {
QString errInfo = QString("errorID:%1, errorString:%2").arg(reply->error()).arg(reply->errorString());
emit result(false, errInfo);
return;
}
QByteArray data = reply->readAll();
if (!data.isEmpty()) {
int writeBytes = m_file->write(data);
m_file->flush();
if (writeBytes != data.size()) {
emit result(false, tr("Write file error\n") + m_file->errorString());
return;
}
}
// check filesize
int contentLength = reply->header(QNetworkRequest::ContentLengthHeader).toInt();
if (contentLength == 0 || m_file->size() == 0 || contentLength != m_file->size()) {
emit result(false, tr("Network error! code 400"));
return;
}
emit result(true, "");
}
linux下qt网络编程 qnetworkreply,QT网络编程之文件下载 QNetworkRequest QNetworkReply QNetworkAccessManager...相关推荐
- Linux下使用Java调用Hikvision设备网络SDK使用指南
1 简介 由于在开发过程中,本来以为抓图项目会部署在Windows服务器上,但随着项目的进行发现项目需要部署在Linux系统,甚至是国产化平台银河麒麟上,但在部署时发现在国产化平台部署时出现缺包的问 ...
- Linux下必须知道的11个网络命令
Linux下必须知道的11个网络命令 作者:佚名 字体:[增加 减小] 来源:互联网 时间:03-06 15:54:29 我要评论 无论你是要下载文件.诊断网络问题.管理网络接口,还是查看网络的统计数 ...
- Linux 下编译并安装配置 Qt
本文介绍的是Linux 下编译并安装配置 Qt,最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发.考虑到程序的跨平台可移植性,最终选择使用 Qt 开发.相对来说,国内关于 Qt 相 ...
- Linux下搭建第一个区块链网络(FISCO BCOS)
Linux下搭建第一个区块链网络(FISCO BCOS) 概述 搭建单群组FISCO BCOS联盟链 配置及使用控制台 部署及调用HelloWorld合约 概述 FISCO BCOS是由国内企业主导研 ...
- linux下网易云音乐无法连接网络问题的解决思路
linux下网易云音乐无法连接网络问题的解决思路 1.当所有需要联网的音乐播放器都出现网络无法连接或者google chrome 出现代理问题,可以检查下你最近是否弄了代理. 例如: 我最近就弄了个代 ...
- linux qt编译命令,Linux 下编译并安装配置 Qt 全过程
Linux 下编译并安装配置 Qt 全过程 1.获得源代码 src 官网下载地址:ftp://ftp.qt.nokia.com/qt/source/ 2009 年 10 月 1 日发布的 qt-x11 ...
- Linux下的静态链接库和动态链接库编程
Linux下的静态链接库和动态链接库编程 参考: Linux下的静态链接库和动态链接库编程 - Histring - 博客园 Mac下静态库和动态库的创建和使用_C/C++_vincent2610的专 ...
- 南京邮电大学嵌入式系统开发实验5:嵌入式Linux下LED报警灯驱动设计及编程
实验5 嵌入式Linux下LED报警灯驱动设计及编程 一.实验目的 理解驱动本质,掌握嵌入式Linux系统下驱动开发相关知识,包括端口寄存器访问.接口函数编写.和文件系统挂接.注册及相关应用编程等知 ...
- RHEL 5.4 下安装和使用 ntop 全纪录(ntop:Linux下可通过Web访问的网络流量监控工具)...
RHEL 5.4 下安装和使用 ntop 全纪录 1. ntop介绍 Ntop是一种监控网络流量工具,用ntop显示网络的使用情况比其他一些网络管理软件更加直观.详细.Ntop甚至可以列出每个节点计算 ...
- linux下的C语言开发(网络编程)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 不管在Windows平台下面还是在Linux平台下面,网络编程都是少不了的.在互联网发达的今天 ...
最新文章
- linux用户和文件目录管理
- 如何攻克目标检测?百度全球顶级会议双料冠军团队有话说!
- 重温SQL——行转列,列转行
- aspects_具有Aspects的Java中的Mixin –用于Scala特性示例
- 动态规划(五)——0/1背包
- 天梯赛L2-010 排座位(并查集和\set)
- 能力不错的大厂高 P,为什么过不了小厂的试用期?
- Python关于File学习过程
- https openssl http2
- 2016-05-25 margin-right jsp获取页面流变量 文字颜色
- deepin系统文本编辑器
- 火狐浏览器播放插件Linux,Firefox浏览器带flash播放器插件
- Beyond Compare linux
- 山东农业大学/基础训练5
- 禁用计算机安全模式,安全模式
- 概率论与数理统计学习笔记——第13讲——依概率收敛的意义
- HDFS成员的工作机制
- ←机器人工程或机器人方向毕业设计汇总篇→↓2022↑
- #ORA-12547: TNS: 丢失连接
- 【软考软件评测师】2010年下案例分析历年真题
热门文章
- CSS滤镜(filter)
- 如何衡量研发效能?阿里资深技术专家提出了5组指标 1
- 智能家居至今未落地 究其原因是没想好怎么分蛋糕
- cloudera manager安装使用
- Android之AppWidget
- openssh服务以及基于ssh的双机互信配置
- 微软工程师主讲的SqlServer2005视频教程
- Oracle数据库之SQL单行函数---字符函数之TRIM
- Google发布Java 核心工具库——Guava 28.0
- 微服务架构实战篇(三):Spring boot2.0 + Mybatis + PageHelper实现增删改查和分页查询功能