【QT进阶】Qt http编程之http相关类的简单介绍

ops/2024/10/19 9:43:59/

往期回顾

【QT进阶】Qt Web混合编程之实现ECharts数据交互动态修改-CSDN博客

【QT进阶】Qt http编程之httphttps简单介绍-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

https://img-blog.csdnimg.cn/direct/211ec0c8ce1f4300b5662ddad3cf442a.png" width="1024" /> 3、获取请求结果

发送post请求后,链接finished信号,在槽函数里获取请求结果

https://img-blog.csdnimg.cn/direct/b75b3abce3c24954aeddfaa43c9ebf15.png" width="1024" />

4、设置请求超时

一个post请求在1ms内是大概可以完成的,如果返回给前端,可能会超过1ms,我把超时时间设为1mshttps://img-blog.csdnimg.cn/direct/1c6312c10b154e9b9b39179ddd8c3782.png" width="1024" />

三、小结

QNetworkAccessManager负责实际发送和接收网络数据,而QNetworkRequest则用于描述和配置具体的网络请求。

所以综合使用QNetworkAccessManager和QNetworkRequest可以方便地实现网络请求和响应的处理,例如发送GET或POST请求,设置请求头信息,处理重定向等功能。


以上就是Qt里http相关类QNetworkAccessManager与QNetworkRequest的简单介绍。

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!


http://www.ppmy.cn/ops/19943.html

相关文章

STM32单片机通过ST-Link 烧录和调试

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. ST-LINK V2 2. 操作步骤 2.1 连接方式 2.2 驱动安装常规步骤 2.3 Keil中的设置 3. 调式仿真 4. 常见问题排查 1. ST-LINK V2 ST LINK v2下载器用于STM32单片机&#xff0c;可以下载程序、调试…

scss基础和css扩展

变量 定义变量 //app.scss $allpadding:20px; //声明颜色变量 $color//使用 import /assets/app.scss;.container{width: 100%;padding:$allpadding;} ⚠️scss中&#xff0c;中下划线和下划线是同一个东西 $link-color: blue; a {color: $link_color; }//编译后a {color: …

ImportError: cannot import name ‘Config‘ from ‘mmcv‘ 问题解决

报错信息&#xff1a; Traceback (most recent call last):File "train.py", line 12, in <module>from mmcv import Config, DictAction ImportError: cannot import name Config from mmcv (/xxx/lib/python3.7/site-packages/mmcv/__init__.py) 问题原因&…

吴恩达机器学习笔记:第 8 周-13 聚类(Clustering)13.3-13.5

目录 第 8 周 13、 聚类(Clustering)13.3 优化目标13.4 随机初始化13.5 选择聚类数 第 8 周 13、 聚类(Clustering) 13.3 优化目标 K-均值最小化问题&#xff0c;是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和&#xff0c;因此 K-均值的代价函数&#xff08;又…

Qt5怎么用QSetting生成配置文件、读取配置文件和保存配置文件

2024年4月22日&#xff0c;周一下午 在 Qt5 中&#xff0c;可以通过 QSettings 类生成、读取和保存配置文件。 QSettings 类提供了一个跨平台的接口&#xff0c;用于读取和写入应用程序的设置和配置信息&#xff0c;这些信息可以存储在不同的地方&#xff0c;如注册表&#xf…

从 Apache Doris 到 SelectDB Cloud:云原生架构下的弹性能力揭秘

随着云时代的到来&#xff0c;越来越多企业开始在公有云、私有云乃至 K8s 容器平台构建实时数据平台。云计算基础设施的革新&#xff0c;促使着数据仓库朝着云原生的方向发展。而用户日益复杂的业务负载和降本增效的需求&#xff0c;对于系统资源的精细化管理和成本效益等方面提…

Pytorch 之torch.nn初探 卷积--Convolution Layers

任务描述 本关任务&#xff1a; 本关提供了一个Variable 类型的变量input&#xff0c;按照要求创建一 Conv1d变量conv&#xff0c;对input应用卷积操作并赋值给变量 output&#xff0c;并输出output 的大小。 相关知识 卷积的本质就是用卷积核的参数来提取原始数据的特征&a…

Android 生成二维码

一、生成二维码工具类封装 1、二维码库 // 二维码implementation com.journeyapps:zxing-android-embedded:4.3.0 2、工具类 /*** 二维码* 处理工具*/public class QRCodeDealUtils {/*** param content 字符串内容* param size 位图宽&高(单位:px)* param log…