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. 【webpack4.0】---webpack的基本使用(四)

    一.什么是babel babel是一个编译javascript的平台,它可以编译代码帮你达到以下目的 1.让你使用最近的javascript代码(ES6 ES7) 而不用管新的标准浏览器是否支持   ...

  2. 网络分层和TCP三次握手

    它们就是 OSI 的七层模型,和 TCP/IP 的四层 / 五层模型.这两种模型的最大区别,就是前者在传输层和应用层之间,还有会话层和表示层,而后者没有. TCP三次握手: 位码即tcp标志位,有6种 ...

  3. a-b转换A-B

  4. Java 中对象锁和类锁的区别? 关键字 Synchronized的用法?

    一  对象锁和类锁的关系 /* * 对象锁和[类锁] 全局锁的关系? 对象锁是用于对象实例方法,或者一个对象实例上的 this 类锁是用于类的静态方法或者一个类的class对象上的. Ag.class ...

  5. Luogu P1314 [NOIP2011 提高组] 聪明的质监员

    P1314 [NOIP2011 提高组] 聪明的质监员 题意 题目描述 给定\(n\)个物品,给定每个物品的 重量 \(w_i\) 和 价值 \(v_i\) 给定一个标准值 \(s\) 以及一个参数 ...

  6. vivo 评论中台的流量及数据隔离实践

    一.背景 vivo评论中台通过提供评论发表.点赞.举报.自定义评论排序等通用能力,帮助前台业务快速搭建评论功能并提供评论运营能力,避免了前台业务的重复建设和数据孤岛问题.目前已有vivo短视频.viv ...

  7. CF1581

    其实是手速场,但因为 \(\rm D, E\) 数据范围时限太阴间卡住了. D \(\rm Hint:\) 本题常数极小加适当剪枝可以 \(\mathcal{O}(n ^ 5)\) 过 \(100\) ...

  8. spring学习五:Spring Bean 定义继承

    Bean 定义继承 bean 定义可以包含很多的配置信息,包括构造函数的参数,属性值,容器的具体信息例如初始化方法,静态工厂方法名,等等. 子 bean 的定义继承父定义的配置数据.子定义可以根据需要 ...

  9. 1、interface/implements 接口与引用

    转载请注明来源:https://www.cnblogs.com/hookjc/ 1.类中全部为抽象方法 2.抽象方法前不用加abstract 3.接口抽象方法属性为public 4.成员属性必须为常量 ...

  10. Posix 信号

    转载请注明来源:https://www.cnblogs.com/hookjc/ 函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯.有名信号灯总是既可用于线程间的同步,又可以用于进 ...