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

embedded/2024/9/22 17:59:01/

往期回顾

【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/embedded/7808.html

相关文章

Java之继承和多态

继承 一 、继承相关基础 1.1 为什么需要继承 先看下代码 // Dog.java public class Dog { string name ; int age ; float weight ; public void eat (){ System . out . println ( name " 正在吃饭 " ); } public void sleep (){ System . ou…

【java毕业设计】 基于Spring Boot+mysql的社区团购系统设计与实现(程序源码)-社区团购系统

基于Spring Bootmysql的社区团购系统设计与实现&#xff08;程序源码毕业论文&#xff09; 大家好&#xff0c;今天给大家介绍基于Spring Bootmysql的社区团购系统设计与实现&#xff0c;本论文只截取部分文章重点&#xff0c;文章末尾附有本毕业设计完整源码及论文的获取方式。…

笔记:Python选择结构 编程题

文章目录 前言一、选择结构是什么&#xff1f;二、编程题总结 前言 在编程中&#xff0c;选择结构是一种重要的控制流程&#xff0c;它允许我们根据条件的满足与否选择性地执行不同的代码块。在 Python 中&#xff0c;常见的选择结构有 if、elif 和 else 语句。 if 语句允许我…

左值引用与右值引用

目录 右值 与 左值 右值引用 右值引用的用处 move 引用折叠 forward 右值 与 左值 c11增加了一个新的类型&#xff0c;右值引用&#xff0c;记作&#xff1a;&& 。 ● 左值是指在内存中有明确的地址&#xff0c;我们可以找到这块地址的数据&#xff08;可取地址…

Promise面试题

promise与 fetch、async/await_fetch async 获取结束标志-CSDN博客 手写promise A、catch、finally、all、allsettled、any、race-CSDN博客 【建议星星】要就来45道Promise面试题一次爽到底(1.1w字用心整理) - 掘金 目录 每隔1秒输出1,2,3 红黄绿灯交替亮 按序执行数组 …

怎么用手机远程控制电脑 远程控制怎么用

怎么用手机远程控制电脑&#xff1a;远程控制怎么用 在这个科技日新月异的时代&#xff0c;远程控制电脑已经成为了很多人的需求。有时&#xff0c;我们可能在外出时突然需要访问家中的电脑&#xff0c;或者在工作中需要远程操控办公室的电脑。这时&#xff0c;如果能用手机远…

FFmpeg合并音视频文件操作备忘(mac版)

利用NDM嗅探插件从B站下载下来的文件是音视频分开的&#xff0c;用剪辑软件合并时发现导出时文件都特别大&#xff0c;于是使用FFmpeg处理 环境&#xff1a; MBP M1芯片版 系统 macOS Sonama 14.4.1 操作步骤&#xff1a; 一、官方下载链接&#xff1a;https://evermeet.cx/…

IDEA2024配置RunDashBoard(Services)面板

IDEA2024配置RunDashBoard(Services)面板 新版本的IDEA没有RunDashBoard&#xff0c;取而代之的是Services面板&#xff0c;不需要配置workspace.xml文件; 本文教你简单的方法就能一个SpringBoot的Main运行多次&#xff0c;方便调试。 1、配置启动类 导航栏&#xff0c;Edit…