QT之QNetworkAccessManager

文章目录

    • 成员函数
    • 例程

成员函数

1)QNetworkReply *post(const QNetworkRequest &request, const QByteArray &data)
该函数用于发送 HTTP POST 请求,将数据作为请求体发送。

2)QNetworkReply *put(const QNetworkRequest &request, const QByteArray &data)
该函数用于发送 HTTP PUT 请求,将数据作为请求体发送。

3)QNetworkReply *get(const QNetworkRequest &request)
该函数用于发送 HTTP GET 请求,不发送任何数据。

4)QNetworkReply *deleteResource(const QNetworkRequest &request)
该函数用于发送 HTTP DELETE 请求,删除指定的资源。

5)QNetworkReply *head(const QNetworkRequest &request)
该函数用于发送 HTTP HEAD 请求,仅获取资源的响应头信息,而不获取响应体。

6)QNetworkReply *get(const QNetworkRequest &request, QHttpMultiPart *multiPart)
该函数用于发送 HTTP GET 请求,并将多部分消息作为请求体发送。该函数是在 Qt 4.8 中引入的。

7)QStringList supportedSchemes() const
该函数返回支持的所有 URL 方案列表。

8)QNetworkReply *sendCustomRequest(const QNetworkRequest &request, const QByteArray &requestMethod)
该函数用于发送自定义请求,可以指定请求方法和请求头。

9)void setProxy(const QNetworkProxy &proxy)
该函数用于设置网络代理。

10)void setConfiguration(const QNetworkConfiguration &config)
该函数用于设置网络配置,可以指定使10)用的网络配置,包括代理、认证等。

11)QNetworkConfiguration activeConfiguration() const
该函数返回当前活动的网络配置。

例程

1)发送POST请求:

#include <QNetworkAccessManager>  
#include <QNetworkRequest>  
#include <QNetworkReply>  
#include <QByteArray>  QNetworkAccessManager *manager = new QNetworkAccessManager(this);  QNetworkRequest request(QUrl("http://example.com/post"));  
request.setMethod(QNetworkRequest::PostMethod);  QByteArray postData = "key=value";  
request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");  QNetworkReply *reply = manager->post(request, postData);  connect(reply, &QNetworkReply::finished, this, [reply]() {  if (reply->error() != QNetworkReply::NoError) {  qDebug() << "Error:" << reply->errorString();  } else {  qDebug() << "Response:" << reply->readAll();  }  delete reply;  
});

在上述代码中,我们首先创建了一个QNetworkAccessManager对象。然后,我们创建一个QNetworkRequest对象,指定请求的URL和请求方法为POST。接下来,我们设置请求头中的Content-Type为application/x-www-form-urlencoded,并使用postData将要发送的数据设置为请求体。最后,我们使用manager的post()方法发送请求,并使用connect()函数连接QNetworkReply的finished()信号,以便在请求完成时处理响应。

2)发送GET请求:

#include <QNetworkAccessManager>  
#include <QNetworkRequest>  
#include <QNetworkReply>  
#include <QUrlQuery>  QNetworkAccessManager *manager = new QNetworkAccessManager(this);  QUrl url("http://example.com/get");  
QUrlQuery query;  
query.addQueryItem("key1", "value1");  
query.addQueryItem("key2", "value2");  
url.setQuery(query);  QNetworkRequest request(url);  
request.setMethod(QNetworkRequest::GetMethod);  QNetworkReply *reply = manager->get(request);  connect(reply, &QNetworkReply::finished, this, [reply]() {  if (reply->error() != QNetworkReply::NoError) {  qDebug() << "Error:" << reply->errorString();  } else {  qDebug() << "Response:" << reply->readAll();  }  delete reply;  
});

在上述代码中,我们创建了一个QNetworkAccessManager对象,并使用QUrl构建了一个URL对象,并使用QUrlQuery设置了查询参数。然后,我们创建一个QNetworkRequest对象,指定请求的URL和请求方法为GET。最后,我们使用manager的get()方法发送请求,并使用connect()函数连接QNetworkReply的finished()信号,以便在请求完成时处理响应。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

厦门城市建设与建筑结构健康监测系统的重要性与作用

厦门&#xff0c;这座美丽的海滨城市&#xff0c;随着经济的快速发展和城市化的不断推进&#xff0c;城市建设已成为人们关注的焦点。其中&#xff0c;建筑结构健康监测系统对于保障城市建设和建筑的安全具有举足轻重的地位。 WITBEE万宾针对建筑的动态平衡&#xff0c;温湿度&…

shell编程系列(7)-使用wc进行文本统计

文章目录 前言wc命令的使用wc命令的参数说明&#xff1a;统计字数统计行数打印文本行号 结语 前言 统计功能也是我们在shell编程中经常碰到的一个需求&#xff0c;wc命令可以适用于任何需要统计的数据&#xff0c;不只是统计文本&#xff0c;配合ls命令我们可以统计文件的个数…

java gc垃圾回收机制(垃圾收集 Garbage Collection)

一文带你深入JAVA GC&#xff08;垃圾回收机制&#xff09;面试讲解&#xff01;&#xff01;&#xff01; - 知乎 gc常用算法 gc常用算法有&#xff1a;标记-清除算法&#xff0c;标记-压缩算法&#xff0c;复制算法&#xff0c;分代收集算法。 复制算法&#xff08;Java中…

java--子类构造器的特点

1.子类构造器的特点 子类的全部构造器&#xff0c;都会先调用父类的构造器&#xff0c;再执行自己。 2.子类构造器是如何实现调用父类构造器的 ①默认情况下&#xff0c;子类全部构造器的第一行代码都是super()(写不写都有)&#xff0c;它会调用父类的无参数构造器。 ②如果…

【攻防世界-misc】来自银河的信号

1.下载并打开文件&#xff0c;是个音频软件 2.由于打开音频出现的声音类似于无线波&#xff0c;因此需要用RX-SSTV工具打开&#xff0c; RX-SSTV代表“接收图像慢扫描电视”的意思。慢扫描电视是一种通过无线电进行图像传输的技术&#xff0c;通常用于业余无线电领域。RX-SST…

分治法之归并排序

思路: 将待排序数组分成两个子数组&#xff0c;计算中间位置mid。对左半部分进行递归排序&#xff0c;得到一个有序的子数组。对右半部分进行递归排序&#xff0c;得到另一个有序的子数组。合并两个有序的子数组&#xff0c;得到一个完整的有序数组。 示例图: 代码: #include&…

JAVA 算法面试总结

1、二分查找 二分查找又叫折半查找&#xff0c;要求待查找的序列有序。每次取中间位置的值与待查关键字比较&#xff0c;如果中间位置 的值比待查关键字大&#xff0c;则在前半部分循环这个查找的过程&#xff0c;如果中间位置的值比待查关键字小&#xff0c; 则在后半部分循环…

【ONE·Linux || 网络基础(四)】

总言 主要内容&#xff1a;传输层UDP、TCP协议基本介绍。UDP报文格式、TCP报文格式、三次握手四次挥手、TCP可靠性策略说明。 文章目录 总言8、UDP协议&#xff08;传输层一&#xff09;8.1、传输层预备知识8.1.1、端口号8.1.2、一些指令&#xff08;netstat、pidof、xargs&am…

linux 内核工作队列

工作队列&#xff08; work queue&#xff09;是使用内核线程异步执行函数的通用机制。 工作队列是中断处理程序的一种下半部机制&#xff0c;中断处理程序可以把耗时比较长并且可能睡眠的函数交给工作队列执行。 工作队列不完全是中断处理程序的下半部。内核的很多模块需要异步…

android NDK相关,调用C库,JNI,交叉编译,跨平台

首先就是库给我&#xff0c;我先进行开发&#xff08;按照文档&#xff09;&#xff0c;最后进行交叉编译ARM平台。 遇到的问题&#xff1a;我要看到代码效果&#xff0c;所以必须要在真机上跑代码&#xff0c;那么我调用的库就必须是我这个平台适用的&#xff0c;有两种方式&…

热烈欢迎省工信厅毛郑建处长莅临公司调研指导工作

2023年11月28日&#xff0c;河南省工信厅信息化和软件服务业处毛郑建处长莅临郑州埃文计算机科技有限公司&#xff08;以下简称“埃文科技”&#xff09;调研考察工作。河南省工业信息安全产业发展联盟理事长任传军陪同调研。 首先&#xff0c;埃文科技董事长王永向毛处长介绍埃…

保存防火墙的规则和自定义链

保存防火墙的规则 将iptables的规则导入开机自启的文件里做脚本使用&#xff0c;就算iptables -F删除&#xff0c;重启就能恢复了 iptables-save #查看当前的所有规则 iptables -save > 保存规则的文件 #保存规则 iptables -restore < 保存的规则文件#重新导入规则 在当…

优维全新低碳产品亮相SBE23 Asia-Pacific绿色建筑促进碳中和论坛

2023年11月23日—24日&#xff0c;由深圳市人民政府主办&#xff0c;深圳市住房和建设局、深圳市发展与改革委员会、深圳市龙岗区人民政府承办&#xff0c;深圳市绿色建筑协会作为执行单位的“2023年可持续建筑环境亚太地区会议&#xff08;SBE23 Asia-Pacific&#xff09;”在…

Ubuntu Server 20.04.6安装Anaconda3

下载安装包 去下面的网页找到自己想要安装的对应版本的链接&#xff1a; https://repo.anaconda.com/archive/ 我安装的版本链接如下&#xff1a; https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh 复制这个链接后使用如下命令下载&#xff1a; wget …

一篇文章带你掌握MongoDB

文章目录 1. 前言2. MongoDB简介3. MongoDB与关系型数据库的对比4. MongoDB的安装5. Compass的使用6. MongoDB的常用语句7. 总结 1. 前言 本文旨在帮助大家快速了解MongoDB,快速了解和掌握MongoDB的干货内容. 2. MongoDB简介 MongoDB是一种NoSQL数据库&#xff0c;采用了文档…

react hooks学习之useMemo和useCallback

useMemo和useCallback的用法以及区别 useCallback 和 useMemo 是 React 中的两个钩子函数&#xff0c;它们的目标都是优化性能&#xff0c;但它们在用途和使用场景上有一些区别。 useCallback useCallback 用于缓存一个回调函数&#xff0c;并在依赖项发生变化时&#xff0c…

arthas使用

官方文档 Github: https://github.com/alibaba/arthas 文档: https://arthas.aliyun.com/doc/ Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断…

C语言从入门到实战——常用字符函数和字符串函数的了解和模拟实现

常用字符函数和字符串函数的了解和模拟实现 前言1. 字符分类函数2. 字符转换函数3. strlen的使用和模拟实现4. strcpy的使用和模拟实现5. strcat的使用和模拟实现6. strcmp的使用和模拟实现7. strncpy函数的使用8. strncat函数的使用9. strncmp函数的使用10. strstr的使用和模拟…

Json示例

这里写目录标题 CjsonC JSonQT json Cjson #include <stdio.h> #include <stdlib.h> #include "cjson.h" // 向JSON对象中添加数据 cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age&…

Redis 数据恢复方式说明

AOF日志 AOF(Append Only File)是写后日志,Redis先执行命令把数据写入内存,然后才记录日志。 实现原理 AOF 里记录的是 Redis 收到的每一条命令,这些命令是以文本形式保存的。 示例: set testkey testvalue 对应AOF文件 *3 $3 set $7 testkey $9 testvalue “*3”表示…