QNetwork

前言

最近在看Qt网络相关,正好记录些Qt文档的知识,方便后面自己参考,大部分是文档个人翻译,掺杂一些个人理解。有问题希望能告诉我,谢谢。这里只结合Qt Creator快速入门写出个人用到的知识,未涉及的请自行参考Qt文档或百度。

QNetworkRequest Class

该类是网络访问API的一部分,含有发送网络请求所必需的内容,包括一个URL和一些用于定义请求的附属信息。

QNetworkAccessManager Class

该类负责协调网络操作,调度创建好的网络请求,拥有发送请求所需的通用配置和设置如代理和cache配置以及相关信号等。由于该类派生自QObject,所以只能用于对应的线程。每个Qt程序都能创建一个以上的QNetworkAccessManager实例。

QNetworkReply Class

该类涉及到数据访问,继承自QIODevice,它是一个顺序存取的QIODevice派生类,即该类的对象不会继续保存被读走的数据,是否保存这部分数据将会由读取当前对象的应用决定。它拥有多个信号、槽供访问数据和其他功能使用

------信号

1.readyRead(),当设备当前可读路径有新的可读数据时,该信号就发射且仅发射一次(非递归)。
2.downloadProgress(),该信号用来反映网络请求的下载部分(如果有)的进展情况,包括两个long long类型的参数bytesRecevied,bytesTotal;如果没有可下载部分,该信号发射一次且参数值均设为0。前者表示收到字节数,后者表示期望下载的字节数总值(若未知,则设为-1)。两者可以用来设置进度条,当两参数相等时,下载完成且将后者设为-1。
3.uploadProgress(),该信号反映网络请求的上传部分,与2不同的是当没有上传请求时,该信号不会发射。参数两个:bytesSent表示上传字节数;bytesTotal表示上传总字节数,如果后者无法确定,值设为-1。两参数相等时即上传完成,且将后者设为-1。

QUrl Class

该类为使用URL提供了一个便捷的接口,它以解码或编码的形式对URL做处理,解码形式是为了展示给用户,编码形式是为了发送给服务器。通常情况下,通过一个QString参数(一个URL)对该类对象进行初始化,但QUrl类也提供了分割化的函数接口,可以分别设置一个URL的各个部分,包括协议头、用户名、密码、主机名、端口等,见表1,常用于FTP。

函数名功能
setScheme(const QString &)一个scheme只能包含ASCII码,如"ftp"
setUserName(const QString&, QUrl::ParsingMode mode=DecodeMode)默认以解码形式设置用户名,包含在UserInfo
setPassword(const QString&, QUrl::ParsingMode mode=DecodeMode)默认以解码形式设置密码,包含在UserInfo
setHost(const QString&, QUrl::ParsingMode mode=DecodeMode)默认解码形式设置主机名,包含在Authority
setPort(int)设置端口,从0到65535,-1表示未指定port
setPath(const QString&, QUrl::ParsingMode mode=DecodeMode)默认以解码形式设置路径
setQuery(const QString&, QUrl::ParsingMode mode=TolerantMode)默认以修正形式设置查询,更正Url的一些通用错误
setFragment(const QString&, QUrl::ParsingMode mode=TolerantMode)默认以修正模式设置信息片段
setAuthority(const QString&, QUrl::ParsingMode mode=TolerantMode)默认以修正模式设置,包括UserInfo、host、port
setUserInfo(const QString&, QUrl::ParsingMode mode=TolerantMode)默认以修正模式设置,包括userName、password
表1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值