QT-发送HTTP请求/QNetworkAccessManager

这篇具有很好参考价值的文章主要介绍了QT-发送HTTP请求/QNetworkAccessManager。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意,如果想使用本文相关的类,需要在项目的.pro文件加入网络模块,也就是需要加入下面一行代码

QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
QT += network	# <-----注意,这行是新加的,加了这行代码,才能使用本文的类
CONFIG += c++17

本文使用QT发送一个媒体类型为application/json的post请求,步骤如下:

1.首先创建一个QNetworkAccessManager类,并设置url和请求参数
2.发送请求,发送之后会返回一个QNetworkReply对象的指针
3.调用connect函数创建一个信号槽,信号为QNetworkReply::finished,槽为我们自己的代码

main.cpp

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    // w.show(); 本文仅用于演示在QT Creator中发送http post,所以不显示GUI界面
    return a.exec();
}

mainwindows.cpp 在mainwindows.cpp中写发送的代码主要是为了使用connect函数文章来源地址https://www.toymoban.com/news/detail-787095.html

#include <QDebug>
#include <QComboBox>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QUrl>
#include <QtNetwork>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    // ui->setupUi(this);本文仅用于演示在QT Creator中发送http post,所以不显示GUI界面
    // 创建QNetworkAccessManager类,并设置url和请求参数
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    QUrl url("http://localhost:8080/test/bb");
    QNetworkRequest request(url);
    request.setRawHeader("Content-Type", "application/json");
    QByteArray postData;
    postData.append("{\"descript\": \"我爱武汉汉阳的妹子\"}");
	// 发送请求,发送之后会返回一个QNetworkReply对象的指针
    QNetworkReply *reply = manager->post(request, postData);
    // 调用connect函数创建一个信号槽,自己设置回调函数
    connect(reply, &QNetworkReply::finished, this, [=]() {
        if (reply->error() == QNetworkReply::NoError) {
            QByteArray data = reply->readAll();
            qDebug()<<data;
        } else {
            qDebug()<<"处理错误";
        }
        reply->deleteLater();
    });
}

到了这里,关于QT-发送HTTP请求/QNetworkAccessManager的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务器发送http请求

    1、发送GET请求 curl localhost:9009/setCreateDataItem?a=1b=nihao 2、发送POST请求 3、发送json格式请求: 其中, -H 代表header头, -X 是指定什么类型请求(POST/GET/HEAD/DELETE/PUT/PATCH), -d 代表传输什么数据。这几个是最常用的。 查看所有curl命令: man curl或者curl -h 请求头:H,A,e 响应头:I,i,D

    2024年01月25日
    浏览(45)
  • shell脚本发送http请求

    简述:使用shell脚本发送http请求,解析请求获取token再次发起请求 系统:ubuntu系统 工具:cURL(发送http请求),jq(解析json),没有需要安装

    2024年02月15日
    浏览(38)
  • 用java发送http请求

    在 Java 中发送 HTTP 请求可以使用标准的 Java 库或者第三方库。这里介绍使用 Java 标准库中的 HttpURLConnection 类来发送 HTTP 请求的方法: 首先,使用 URL 类来创建一个 URL 对象,指定要访问的 URL。 使用 URL 对象的 openConnection 方法来获取 HttpURLConnection 对象。 设置 HTTP 请求的方法

    2024年02月16日
    浏览(39)
  • linux发送http请求命令

    一、http get请求 1、curl命令不带参 curl “http://www.baidu.com” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 curl -i “http://www.baidu.com” 显示全部信息 curl -l “http://www.baidu.com” 只显示头部信息 curl -v “http://www.baidu.com” 显示get请求全过程解析 2、curl命令带参

    2024年01月20日
    浏览(46)
  • 用Python发送HTTP请求

    2024年02月10日
    浏览(40)
  • HarmonyOS 发送http网络请求

    好 本文 我们来说 http请求 首先 我们要操作网络内容 需要申请权限 项目中找到 main目录下的module.json5 最下面加上 这里 我在本地写了一个get接口 大家可以想办法 弄一个后端接口 首先 我们编写一个组件雏形 我们导入 @ohos.net.http 然后 通过 createHttp 获取一个http对象 然后通过对

    2024年01月23日
    浏览(49)
  • 【Qt5】QNetworkAccessManager

    2023年11月5,周日晚上 QNetworkAccessManager是Qt Network模块中的一个类,用于发送网络请求和接收网络响应。它提供了一种方便的方式来进行网络通信,支持常见的网络协议,如HTTP、HTTPS、FTP等。 QNetworkAccessManager和QNetworkRequest、QNetworkReply联系紧密,QNetworkRequest用于生成网络请求,

    2024年02月05日
    浏览(36)
  • QT(17)- QNetworkAccessManager

    QNetworkAccessManager是Qt网络模块中的一个类,它用于管理网络请求和响应。它可以发送HTTP请求,处理HTTP响应,支持文件上传和下载,以及支持多种网络协议。 QNetworkAccessManager使用异步方式发送请求和处理响应,这意味着它可以在不阻塞应用程序UI线程的情况下进行网络通信。当

    2024年01月16日
    浏览(38)
  • C++使用HTTP库和框架轻松发送HTTP请求

    使用C++编程发送HTTP请求通常需要使用第三方的HTTP库或框架。在C++中,有几个受欢迎的HTTP库可供选择,例如Curl、Boost.Beast和cpp-httplib。另外,也可以自己实现socket来发送http请求。 (1)安装Curl库 。 对于Debian/Ubuntu系统: 对于RHEL/CentOS系统: 对于macOS系统: (2)编写Curl代码

    2024年02月02日
    浏览(46)
  • 发送HTTP POST请求并处理响应

    发送HTTP POST请求并处理响应是Web开发中的常见任务。在Go语言中,可以使用 net/http 包来发送HTTP POST请求并处理响应。 以下是一个示例代码,演示了如何发送HTTP POST请求并处理响应: go 复制代码 package  main import  ( \\\"bytes\\\"   \\\"fmt\\\"   \\\"io/ioutil\\\"   \\\"net/http\\\"   ) func   main ()  { // 创建一

    2024年01月17日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包