首页 > 其他分享 >QT的http post

QT的http post

时间:2023-06-12 16:44:08浏览次数:60  
标签:http QT QNetworkReply ui post include MainWindow

QT += network

  

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QWidget>
#include <QObject>
#include <QDebug>
#include <QHttpMultiPart>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QMetaObject>
#include <QEventLoop>
#include <QJsonDocument>            //以下是json数据传送所需头文件
#include <QJsonParseError>
#include <QJsonObject>
#include <QJsonValue>
#include <QJsonArray>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private slots:
    void finishedSlot(QNetworkReply*);
private:
    Ui::MainWindow *ui;



};
#endif // MAINWINDOW_H

  

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSslSocket>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

qDebug()<< QSslSocket::sslLibraryBuildVersionString();
    QNetworkAccessManager * net_mgr = new QNetworkAccessManager(this);
        connect(net_mgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*)));

        QNetworkRequest net_request;
        net_request.setUrl(QUrl("https://saas-0-core.0.cn/v1/fn_saas_core/req_rpc_cmd"));

    // 下边这行也很重要,要发送json格式的数据必须要在header里设置,不然不会成功的
        net_request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
        QJsonObject object;

        object.insert("cmd", "req_get_machine_info_iot_base_bu_mid");
        QJsonObject object2;
        object2.insert("mid", 9109513);
        object.insert("data", object2);
        QJsonDocument document=QJsonDocument(object);

        // 这里要将json格式的数据转换为QByteArray才行
        QByteArray post_data = document.toJson(QJsonDocument::Compact);
        net_mgr->post(net_request, post_data);


}

void MainWindow::finishedSlot(QNetworkReply* reply)
{
    if (reply->error() == QNetworkReply::NoError)
    {
        QByteArray bytes = reply->readAll();
        // 下边我们将收到的body部分解析为json格式,其中有个key是status
        QJsonDocument jsonDocument = QJsonDocument::fromJson(bytes);
        qDebug()<<jsonDocument;
        QJsonObject jsonObject = jsonDocument.object().find("data").value().toObject();
        QString value = jsonObject["productKey"].toString();
        qDebug()<<"PID:"<<value;


    }
    reply->deleteLater();
}


MainWindow::~MainWindow()
{
    delete ui;
}

  

标签:http,QT,QNetworkReply,ui,post,include,MainWindow
From: https://www.cnblogs.com/ahuo/p/17475440.html

相关文章

  • python使用HTTP隧道代理代码示例模板
    以下是使用HTTP隧道代理的Python代码示例模板:```pythonimportrequests#设置代理服务器地址和端口号proxy_host="your_proxy_host"proxy_port="your_proxy_port"#设置代理服务器的用户名和密码(如果需要)proxy_username="your_proxy_username"proxy_password="your_proxy_p......
  • PHP使用HTTP隧道代码示例模板
    以下是使用PHP实现HTTP隧道的代码示例模板:```php<?php//目标网站的URL$targetUrl='ExampleDomain';//获取客户端请求的HTTP方法和请求头$method=$_SERVER['REQUEST_METHOD'];$headers=getallheaders();//创建与目标网站的连接$ch=curl_init();curl_setopt($ch,CURLOPT......
  • PostgreSQL技术大讲堂 - 第18讲:Tuning Autovacuum
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。Part18:Vacuum空间管理工具内容1:什么是autovacuum?内容2:为什......
  • qt6.5.0使用windeployqt发布程序提示Creating qt_ar_qm... Cannot open. : 拒绝访问
    报错内容如下图这是一个软件bug,qt社区的解决办法是,使用新版本6.5.1或6.6.0 ......
  • 13、镜像仓库Habor的安装、高可用、https加密
    Docker之分布式仓库Harbor安装Harbor下载地址:https://github.com/vmware/harbor/releases安装要求:4CPUMEM:8GBDISK:160GB环境准备:四台主机两台主机harbor服务器,地址10.0.0.101|102两台主机harbor客户端上传和下载镜像一键安装docker、docker-compose、harbor脚本#!/bi......
  • HTTP代理出现错误代码204是什么意思
    当咱们使用HTTP代理时,经常会出现错误码。其中最常见的是204错误码。那么,什么是204错误码?它表示什么意思呢?首先,204是HTTP协议定义的一种响应状态码。HTTP是一种在网络上传输超文本数据的协议,当我们使用HTTP代理访问网站时,会通过HTTP协议进行通信。204状态码表示服务器已......
  • delphi通过TNetHttpClient监测小红书笔记有无新增评论
    一、实现原理及步骤 每隔一定时间间隔(比如2分钟),抓取特定笔记ID的全部评论,统计出评论数量及子评论数量,与前一次抓取的数量比较,如数量增加,说明有新增评论。然后通过排序评论,找出最新添加的评论。二、技术要点1、评论接口https://edith.xiaohongshu.com/api/sns/web/v2/comment......
  • PyQt5 扫描远程端口
    #-*-coding:utf-8-*-#@Time:2023/6/916:00#@Author:wangyafeng#@FileName:main.py.py#@Email:[email protected]#@Software:PyCharmimportsysfromPyQt5.QtWidgetsimportQApplication,QMainWindowimportscanportimportthreadingimpor......
  • 网站http免费升级到https(阿里云)
    1、购买阿里云免费的ssl证书通过下面链接购买免费的ssl证书:https://common-buy.aliyun.com/?spm=a2c4g.11186623.2.6.767e1a63RfnkBE&commodityCode=cas#/buy显示这个界面不能购买点那个蓝色字体购买免费的【证书资源包】2、申请证书前往阿里云ssl证书控制台----SSL证书----免费证......
  • MQTT消息发送和接收的实现
    我是不会的,全是从网上搜的,最终整理拼合的可以使用了,使用C#和VS2019,MQTT使用3.1.0版本,需要注意的是不同的版本代码是不一样的,对于咱这种不会的,当然是以能用为主了,你要是安装的最新的4.0版本,那还是换换吧首先需要在nuGet中引用下面的三个,MQTTnet3.1.0、MQTTnet.Extensions.Managed......