0、说明

QNetworkRequest类代表被QNetworkAccessManager发送的请求。

QNetworkReuqest是网络访问API的一部分,在其内部保留了在网络上发送一个request的必要信息。它包含了一个URL和一些辅助信息,这些信息可以用于确定和修改一个request。

1、模块和加载项

Header: #include <QNetworkRequest>
qmake: QT += network
Since: Qt 4.4

2、构造

QNetworkRequest(QNetworkRequest other) 得到另一个Request的副本。
QNetworkRequest(QUrl url) 用要请求的URL构造一个Request。
QNetworkRequest() 构造一个空URL,其内容用各种setxxx()方法设置。

经过测试,QNetworkRequest(QUrl url)容易出现异常,还是先构造一个空的Request,再用setUrl()设置URL为好。

3、静态字段

类型

字段

说明

enum Attribute

QNetworkRequest与QNetworkReply的属性码。

用于控制request的行为,从reply中传送更多发往应用的信息。

CacheLoadControl Cache载入控制
KnownHeaders Header
LoadControl 载入控制
Priority 优先级
RedirectPolicy 重定向策略
TransferTimeoutConstant  传输超时时间

4、实例方法

返回值类型

方法

说明

QNetworkRequest &

bool

bool

operator=(QNetworkRequest other)

operator!=(QNetworkRequest other)

operator==(QNetworkRequest other)

赋值

判断是否相等

QVariant attribute(QNetworkRequest::Attribute code, QVariant defaultValue = QVariant()) 返回与code关联的attribute,如果该attribute未设置,则返回默认attribute。
bool hasRawHeader(QByteArray headerName) 如果原始首部headerName在Request中存在,则返回true
QVariant header(QNetworkRequest::KnownHeaders header) 返回首部对应的QVariant,如果不存在则返回QVariant()
QHttp2Configuration http2Configuration() 返回当前QNetworkAccessManger用于该Request和HTTP/2连接的参数。
int maximumRedirectsAllowed() 最大重定向次数
QObject * originatingObject() 返回启动了该Request的对象,不存在时返回nullptr
QString peerVerifyName() 返回证书验证的host name
QNetworkRequest::Priority priority() 返回请求优先级
QByteArray rawHeader(QByteArray headerName) 返回该Request的原始首部对应的QByteArray。不存在时,hasRowHeader()返回false,并且该函数返回空QByteArray
QList<QByteArray> rawHeaderList() 返回该Request的所有原始首部的List。
void setAttribute(QNetworkRequest::Attribute code, QVariant value) 设置参数
setHeader(QNetworkRequest::KnownHeaders header, QVariant value) 设置Header 
setHttp2Configuration(QHttp2Configuration configuration) 设置HTTP/2参数
setMaximumRedirectsAllowed(int maxRedirectsAllowed) 设置最大重定向次数
setOriginatingObject(QObject *object) 设置启动该Request的对象
setPeerVerifyName(QString peerName) 设置证书验证的host name
setPriority(QNetworkRequest::Priority priority) 设置请求优先级
setRawHeader(QByteArray headerName, QByteArray headerValue)

设置header及其对应的value,例子

request.setRawHeader(QByteArray("Last-Modified"), QByteArray("Sun, 06 Nov 1994 08:49:37 GMT"));
setSslConfiguration(QSslConfiguration config) 设置SSL配置
setTransferTimeout(int timeout = DefaultTransferTimeoutConstant) 设置传输超时时间
setUrl(QUrl url) 设置该Reuqest的URL
QSslConfiguration sslConfiguration() 获取该Request的SSL配置
void swap(QNetworkRequest &other) 交换两个Request的值
int transferTimeout() 获取传输超时时间
QUrl url() 获取Request的URL

5、常用

1)构造一个空Request,为它指定URL:

QNetworkRequest request;
request.setUrl(QUrl("Url_String"));

Qt:QNetworkRequest的更多相关文章

  1. Qt:QNetworkAccessManager

    0.说明 QNetworkAccessManager允许应用发送Request并接受回应. 网络访问API是围绕一个QNetworkAccessManager对象构建的,该对象保留了所有它发送的请求的 ...

  2. Qt:禁止qDebug的输出

    Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT

  3. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

  4. Qt:QJsonObject

    0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...

  5. Qt:QJsonValue

    0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...

  6. Qt:QJsonArray

    0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...

  7. Qt:QUrl构造时的qrc前缀

    参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...

  8. QT:多线程HTTP下载文件

    这里的线程是指下载的通道(和操作系统中的线程不一样),一个线程就是一个文件的下载通道,多线程也就是同时开起好几个下载通道.当服务器提供下载服务时,使用下载者是共享带宽的,在优先级相同的情况下,总服务器 ...

  9. Qt:QNetworkReply

    0.说明 QNetworkReply对象包含了Manager发送的请求头和返回的数据. 它继承自QIODevice,所以可以用各种read获取其中返回的数据: QByteArray data = re ...

随机推荐

  1. Android开发----RecyclerView视图的学习

    RecyclerView RecyclerView是什么? RecyclerView是如今Android开发中最常用的控件,其相较于ListView和GridView的功能更为强大,优化了两者的各种不 ...

  2. linux实时监控并实时备份数据(rsync)

    目录 一:rsync实时监控备份流程 1.安装rsync(服务端 与 客服端)守护进程模式 2.修改配置文件(服务端) 3.解析配置内容 4.创建系统用户 5.创建密码文件 6.授权(必须授权为600 ...

  3. Mac 常用的 20 款效率神器推荐

    01.IntelliJ IDEA -- JetBrains 系列产品 02.GoLand -- JetBrains 系列产品 03.Alfred 04.Google Chrome 05.iTerm2 ...

  4. MyBatis加强(1)~myBatis对象关系映射(多对一关系、一对多关系)、延迟/懒加载

    一.myBatis对象关系映射(多对一关系.一对多关系) 1.多对一关系: ---例子:多个员工同属于一个部门. (1)myBatis发送 额外SQL: ■ 案例:员工表通过 dept_id 关联 部 ...

  5. 使用Typora+PicGo实现图片自动上传到Gitee图床

    一.前言 我们在使用Typora编辑器时,会加上图片,有个弊端,只能在本地访问,你发送给别人就无法查看图片,当然可以导出pdf.小编这边的需求是这样的,自己搭建的一个博客系统,基于Hexo搭建的,这个 ...

  6. IDEA使用MybatisCodeHelperPro插件

    下载MybatisCodeHelperPro: 链接:https://pan.baidu.com/s/1H6csq9STVh0Ofldh6V6gxQ提取码:r2g3 IDEA安装本地插件: ctrl+ ...

  7. 枚举和注解@override、@Deprecated、@SuppressWarnings

    一.枚举 简介: 1)枚举对应英文(enumeration,简写 enum) 2)枚举是一组常量的集合. 3)可以这里理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象. 实现方式: 1.自定 ...

  8. 对比redis的RDB、AOF模式的优缺点

    一.RDB模式 1.1 工作原理 RDB(Redis DataBase):基于时间的快照,其默认只保留当前最新的一次快照,特点是执行速度比较快,缺点是可 能会丢失从上次快照到当前时间点之间未做快照的数 ...

  9. 取代 Mybatis Generator,这款代码生成神器配置更简单,开发效率更高!

    作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper. Mybatis Generator 是 ...

  10. Mapper代理方式

    MyBatis入门初体验时,使用mapper的方式: 很奇怪,为什么只有interface二没有实现,怎么就可以从数据库中查出准确的数据.其实Mybatis利用了JDK动态代理实现了相应功能,下面详细 ...