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. python类和函数

    #/usr/bin/python #coding=utf-8 class Car(): def __init__(self,name,year): self.name = name self.year ...

  2. docker镜像制作Dockerfile

    使用 Dockerfile 定制镜像 从刚才的 docker commit 的学习中,我们可以了解到,镜像的定制实际上就是 定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作 的 ...

  3. Node.js下载安装与配置(windows)

    一.Node.js下载 官网下载地址:下载 | Node.js 中文网 (nodejs.cn) 以Windows64位安装版为例,点击"Windows 安装包(.msi)"右侧的& ...

  4. 女朋友让我深夜十二点催她睡觉,我有Python我就不干

    事情是这样的:今天晚上,女朋友让我十二点催她睡觉. 不过,可是我实在太困了,熬不下去-- 是吧?女朋友哪有睡觉重要? 但,女朋友的命令,我是不敢违抗的-- 但是睡觉也不能缺! 这时候我们该怎么办呢?是 ...

  5. HowToDoInJava Spring 教程·翻译完成

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 Spring 5 Spr ...

  6. CSP2019 Day2T2 划分

    很显然有一个暴力 \(dp\),令 \(dp_{i, j}\) 表示最后一次划分在 \(i\) 上次划分在 \(j\) 的最小花费,令 \(S_i = \sum\limits_{j = 1} ^ i ...

  7. 无意进去UIView随笔闹腾着玩 -by 胡 xu

    1 @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem> ...

  8. hibernate中的映射文件xxx.hbm.xml详解总结

    转自 http://blog.csdn.net/a9529lty/article/details/6454924 一.hibernate映射文件的作用: Hibernate映射文件是Hibernate ...

  9. pytest-html 测试报告

    前言 上一篇文章pytest简介中,执行测试用例后,在 pycharm 控制台(方式一)或 Terminal(方式二)中可以查看测试结果.但是在实际的接口自动化项目中一般需要生成直观的测试报告,这个测 ...

  10. LeetCode随缘刷题之整数反转

    package leetcode.day_01_29; /** * 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果. * 如果反转后整数超过 32 位的有符号整数的范围[− ...