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. mysql加强(3)~分组(统计)查询

    一.分组(统计) 查询 1.语法 : select [distinct] *| 分组字段1[别名] [,分组字段2[别名],...] | 统计函数 from 表名 [别名] [where 条件(s)] ...

  2. 使用光盘无网络搭建本地yum源仓库

    目录 一:使用光盘搭建本地yum源 1,按顺序搭建本地yum源 第一步 : 搭载安装光盘 第二步 : 编辑repo yum源文件 第三步 : 检查 yum makecache 注意事项: 一:使用光盘 ...

  3. Vue之 css3 样式重置 代码

    reset.css @charset "utf-8";html{background-color:#fff;color:#000;font-size:12px} body,ul,o ...

  4. RefactoringGuru 代码异味和重构技巧总结

    整理自 RefactoringGuru 代码异味 --什么?代码如何"闻味道"?? --它没有鼻子...但它肯定会发臭! 代码膨胀 [代码膨胀]是代码.方法和类,它们的规模已经增加 ...

  5. CSS Modules 的六种用法

    一.局部作用域 二.全局作用域 三.定制哈希类名 四. Class 的组合 五.输入其他模块 六.输入变量

  6. JSP response.setCharacterEncoding与response.setContentType的区别

    问题描述 昨天在参考别人的项目时,发现页面引用js,css等文件总是乱码,后来才发现是MIME类型统一设置为text/html,并且仅仅编码设置了浏览器端的解析编码.另外,可以先通过文本编辑器(如no ...

  7. RedHat Linux 忘记密码

    一.无法进入系统 在虚拟机开机3秒时按e 选择第二个选项带有quite的那个 进入界面后,在quite后,空格+single 进入单用户模式 然后输入passwd +账号(要修改的账号) 输入新的密码 ...

  8. Mac和Linux远程连接服务器异常修复(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)

    感谢大佬:https://blog.csdn.net/wd2014610/article/details/79945424 一.今天在使用SSH,连接远程服务器的时候,刚开始是没问题的. 后来阿里云主 ...

  9. MAC上安装HEAAN库

    介绍 HEAN是一个软件库,它实现支持定点运算的同态加密(HE),此库支持有理数之间的近似运算.近似误差取决于某些参数,与浮点运算误差几乎相同.该库中的方案发表在"近似数算术的同态加密&qu ...

  10. Kinect v2 + WPF获取RGB与Depth图像

    date: 2017-09-04 14:51:07 Kinect V2的Depth传感器采用的是「Time of Flight(TOF)」的方式, 通过从投射的红外线反射后返回的时间来取得Depth信 ...