往期回顾
【QT进阶】Qt Web混合编程之实现ECharts数据交互动态修改-CSDN博客
【QT进阶】Qt http编程之http与https简单介绍-CSDN博客
【QT进阶】Qt http编程之后端API测试工具postman使用介绍-CSDN博客
【QT进阶】Qt http编程之http相关类QNetworkAccessManager与QNetworkRequest的简单介绍
主要是QNetworkAccessManager和QNetworkRequest这两个类,在Qt中,这两个类通常是一起使用,被用于实现网络通信功能,例如从Web服务器获取数据、上传文件等操作。
一、QNetworkAccessManager
1、简单介绍
QNetworkAccessManager是Qt中用于处理网络请求的类,它提供了一种方便的方式来发送网络请求并接收响应。通过QNetworkAccessManager,可以执行诸如发送GET或POST请求、下载文件、处理重定向等操作。它支持多种网络协议,包括 HTTP、HTTPS、FTP 等。
2、需要包含的头文件
Header: #include <QNetworkAccessManager>
qmake: QT += network
Since: Qt 4. 4
Inherits: Q0bject
3、常用方法
QNetworkReply * get (const QNetworkRequest &request) |
QNetworkReply * head (const QNetworkRequest &request) |
bool isStrictTransportSecuri tyEnabled() const |
bool isStrictTranspor tSecuri tyStoreEnabled() const |
QNetworkReply * post (const QNetworkRequest &request, QIODevice *data) |
QNetworkReply * post (const QNetworkRequest &request, const QByteArray &data) |
QNetworkReply * post (const QNetworkRequest &request, QHttpMultiPart *multiPart) |
QNetworkProxy proxy() const |
QNetworkProxyFactory * proxyFactory() const |
QNetworkReply * put (const QNetworkRequest &request, QIODevice *data) |
QNetworkReply * put (const QNetworkRequest &request, const QByteArray &data) |
QNetworkReply * put (const QNetworkRequest &request, QHt tpMultiPart *multiPart) |
(1)QNetworkReply *get(const QNetworkRequest &request):
发送一个GET请求并返回一个QNetworkReply对象,用于处理响应数据。
(2)QNetworkReply *head(const QNetworkRequest &request):
发送一个HEAD请求并返回一个QNetworkReply对象,用于处理响应数据。
(3)bool isStrictTransportSecurityEnabled() const:
检查是否启用了严格传输安全性。
(4)bool isStrictTransportSecurityStoreEnabled() const:
检查是否启用了严格传输安全性存储。
(5)QNetworkReply * post(const QNetworkRequest &request, QIODevice *data):
发送一个POST请求并返回一个QNetworkReply对象,用于处理响应数据。
(6)QNetworkReply * post(const QNetworkRequest &request, const QByteArray &data):
发送一个POST请求并返回一个QNetworkReply对象,用于处理响应数据。
(7)QNetworkReply * post(const QNetworkRequest &request, QHttpMultiPart *multiPart):
发送一个POST请求并返回一个QNetworkReply对象,用于处理响应数据。
(8)QNetworkReply * proxy() const:
返回当前的网络代理设置。
(9)QNetworkReply * proxyFactory() const:
返回当前的网络代理工厂设置。
(10)QNetworkReply * put(const QNetworkRequest &request, QIODevice *data):
发送一个PUT请求并返回一个QNetworkReply对象,用于处理响应数据。
(11)QNetworkReply * put(const QNetworkRequest &request, const QByteArray &data):
发送一个PUT请求并返回一个QNetworkReply对象,用于处理响应数据。
(12)QNetworkReply * put(const QNetworkRequest &request, QHttpMultiPart *multiPart):
发送一个PUT请求并返回一个QNetworkReply对象,用于处理响应数据。
二、QNetworkRequest
1、简单介绍
QNetworkRequest用于表示网络请求的类,它包含了请求的URL、请求头信息、请求方法等。在使用QNetworkAccessManager发送网络请求时,通常会创建一个QNetworkRequest对象来描述该请求的各项信息,然后将该对象传递给QNetworkAccessManager 的相应方法。
2、需要包含的头文件
Header: #include <QNetworkRequest>
qmake: QT += network
Since: Qt 4. 4
3、获取请求结果
发送post请求后,链接finished信号,在槽函数里获取请求结果
4、设置请求超时
一个post请求在1ms内是大概可以完成的,如果返回给前端,可能会超过1ms,我把超时时间设为1ms
三、小结
QNetworkAccessManager负责实际发送和接收网络数据,而QNetworkRequest则用于描述和配置具体的网络请求。
所以综合使用QNetworkAccessManager和QNetworkRequest可以方便地实现网络请求和响应的处理,例如发送GET或POST请求,设置请求头信息,处理重定向等功能。
以上就是Qt里http相关类QNetworkAccessManager与QNetworkRequest的简单介绍。
都看到这里了,点个赞再走呗朋友~
加油吧,预祝大家变得更强!