Qt网络编程post请求,数据格式为json或x-www-form-urlencoded

这篇具有很好参考价值的文章主要介绍了Qt网络编程post请求,数据格式为json或x-www-form-urlencoded。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Qt网络编程post请求,数据格式为json或x-www-form-urlencoded

一、.H文件

1、.h头文件

2、.h主代码

二、.CPP文件

1、主代码

 三、响应信息 返回结果(Josn数据格式输出)

四、Post数据格式参数及数据类型定义

1、Post:application/x-www-form-urlencoded数据类型格式

2、Post:application/json数据类型格式

五、测试请求模拟接口网站文章来源地址https://www.toymoban.com/news/detail-466243.html

Qt网络编程post请求,数据格式为json或x-www-form-urlencoded

一、.H文件

1、.h头文件

#include<QtNetwork/QNetworkRequest>
#include<QtNetwork/QNetworkReply>
#include<QtNetwork/QNetworkAccessManager>

2、.h主代码

private:
     QNetworkAccessManager * network_manager;

private slots:
    void post();
    void postBack(QNetworkReply* reply);

二、.CPP文件

1、主代码

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    network_manager= new QNetworkAccessManager(this);
    connect(network_manager,&QNetworkAccessManager::finished,this,&Widget::postBack);//通信完成后,自动调用getBack 方法
    post(); //执行Post请求
}


void Widget::post()
{
    //Post请求参数方法
    QByteArray dataArray;
    dataArray.append("INT_NAME=APIInfo&");
    dataArray.append("REQ_TIME=2008-9-4 12:19:14&");
    dataArray.append("REQ_ID=200894121914&");
    dataArray.append("AUTH_ID=123456&");
    dataArray.append("PARAM={\"ID\":\"1114444\",\"Code\":\"code1112222\",\"Name\":\"名称\",\"Flag\":\"1\",\"RequestTime\":\"2021-07-10 11:34:54\"}&");
    dataArray.append("DATA_DIGEST=244cc13014bd0c703a55bf0d8a71e100");


    //构造请求
    QNetworkRequest request;
    request.setUrl(QUrl("http://127.0.0.1:15738/WebService.asmx/APIInfo")); //请求地址
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

    //发送请求
    network_manager->post(request, dataArray);
}


void Widget::postBack(QNetworkReply* reply)
{
    //qDebug()<<reply->readAll().data(); //输出所有响应内容

    // 获取响应信息
    QByteArray bytes = reply->readAll();

    QJsonParseError jsonError;
    QJsonDocument doucment = QJsonDocument::fromJson(bytes, &jsonError);
    if (jsonError.error != QJsonParseError::NoError) {
        qDebug() << QStringLiteral("解析Json失败");
        return;
    }

    // 解析Json
    if (doucment.isObject())
    {
        QJsonObject obj = doucment.object();
        QJsonValue value;
        if (obj.contains("data"))
        {
            value = obj.take("data");
            if (value.isString())
            {
                QString data = value.toString();
                qDebug() << data;
            }
        }
     }

}

 三、响应信息 返回结果(Josn数据格式输出)

{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "AUTH_ID": "123456", 
    "DATA_DIGEST": "244cc13014bd0c703a55bf0d8a71e100", 
    "INT_NAME": "APIInfo", 
    "PARAM": "{\"ID\":\"1114444\",\"Code\":\"code1112222\",\"Name\":\"\u540d\u79f0\",\"Flag\":\"1\",\"RequestTime\":\"2021-07-10 11:34:54\"}", 
    "REQ_ID": "200894121914", 
    "REQ_TIME": "2008-9-4 12:19:14"
  }, 
  "headers": {
    "Accept-Encoding": "gzip, deflate", 
    "Accept-Language": "zh-CN,en,*", 
    "Content-Length": "329", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "Mozilla/5.0", 
    "X-Amzn-Trace-Id": "Root=1-634cbd2d-5a6d5114396528ad56f5a558"
  }, 
  "json": null, 
  "origin": "153.140.13.18", 
  "url": "http://httpbin.org/post"
}

四、Post数据格式参数及数据类型定义

1、Post:application/x-www-form-urlencoded数据类型格式

    //表单数据提交
    QByteArray dataArray;
    dataArray.append("INT_NAME=APIInfo&");
    dataArray.append("REQ_TIME=2008-9-4 12:19:14&");
    dataArray.append("REQ_ID=200894121914&");
    dataArray.append("AUTH_ID=123456&");
    dataArray.append("PARAM={\"ID\":\"1114444\",\"Code\":\"code1112222\",\"Name\":\"名称\",\"Flag\":\"1\",\"RequestTime\":\"2021-07-10 11:34:54\"}&");
    dataArray.append("DATA_DIGEST=244cc13014bd0c703a55bf0d8a71e100");


    //构造请求
    QNetworkRequest request;
    request.setUrl(QUrl("http://127.0.0.1:15738/WebService.asmx/APIInfo")); //请求地址
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

2、Post:application/json数据类型格式

    // Json数据提交
    QJsonObject json;
    json.insert("INT_NAME", "APIInfo");
    json.insert("REQ_TIME", "2008-9-4 12:19:14");
    json.insert("REQ_ID", "200894121914");
    json.insert("AUTH_ID", "123456");
    json.insert("PARAM", "{\"ID\":\"1114444\",\"Code\":\"code1112222\",\"Name\":\"名称\",\"Flag\":\"1\",\"RequestTime\":\"2021-07-10 11:34:54\"}");
    json.insert("DATA_DIGEST", "244cc13014bd0c703a55bf0d8a71e100");


    QJsonDocument document;
    document.setObject(json);
    QByteArray dataArray = document.toJson(QJsonDocument::Compact);


    //构造请求
    QNetworkRequest request;
    request.setUrl(QUrl("http://127.0.0.1:15738/WebService.asmx/APIInfo")); //请求地址
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");

五、测试请求模拟接口网站

 /*httpbin.org 这个网站能测试 HTTP 请求和响应的各种信息,比如 cookie、ip、headers 和登录验证等,且支持 GET、POST 等多种方法,对 web 开发和测试很有帮助。*/
  request.setUrl(QUrl("http://httpbin.org/post"));

到了这里,关于Qt网络编程post请求,数据格式为json或x-www-form-urlencoded的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Jmeter】信息头管理器(HTTP Header Manager) - 发送Post请求数据为json格式

    【Jmeter】信息头管理器(HTTP Header Manager) - 发送Post请求数据为json格式

    将 json 格式 请求数据输入 HTTP 请求 中的 Body Data (消息体数据 / 请求入参) 右击 Thread (线程组) 鼠标移至 Add (添加) → Config Element (配置元件) 点击 HTTP Header Manager (HTTP信息头管理器) 即可完成信息头管理器新建 进入 HTTP Header Manager (HTTP信息头管理器) 页面 点击下方 Add (添加) Nam

    2024年02月07日
    浏览(4)
  • requests库post请求参数data、json和files的使用,postman的各种数据格式

    application/x-www-form-urlencoded 和 application/json 是两种不同的 HTTP 请求体格式,它们在 Python 中的处理方式也不同。 application/x-www-form-urlencoded 是 Web 表单默认的提交方法,浏览器会将表单数据编码为 key-value 键值对,并将其放在请求体中。该格式数据可以通过 Python 中的标准库 url

    2024年02月16日
    浏览(14)
  • Postman发送JSON格式的post请求

    Postman发送JSON格式的post请求

    很多同学都习惯了使用发送get请求以及POST请求发送表单数据,但是如何使用postman post请求发送json数据呢. 设置发送数据类型为json  选中raw,并粘贴要发送的json数据.send,就可以看到我们返回的数据了. 

    2024年02月13日
    浏览(11)
  • requests  发送一个 json 格式的 post 请求

    requests 发送一个 json 格式的 post 请求

    今天给一位同学解决post发送数据格式为json格式的请求,顺便确认一下问题归属。 背景: 用postman工具发送一个数据格式为json的请求,得到了服务器的响应。 用python的requests库写的请求,却报错了。没有得到该有的结果。 解决方法: 先确认自己的请求信息和函数使用正确。包

    2024年02月07日
    浏览(8)
  • ESP8266-Arduino网络编程实例-HTTPS客户端数据请求

    超文本传输协议安全 (HTTPS) 是 HTTP的安全版本,HTTP 是用于在 Web 浏览器和网站之间发送数据的主要协议。HTTPS 经过加密,以提高数据传输的安全性。当用户传输敏感数据(例如通过登录银行账户、电子邮件服务或健康保险提供商)时,这一点尤其重要。 从技术上来讲,HTTPS

    2023年04月08日
    浏览(7)
  • java业务代码发送http请求(Post方式:请求参数为JSON格式;Get方式)

    实际开发中,可能需要发送http请求到第三方服务获取数据,于是就有以下应用: 依赖: 假设我需要在我的业务代码中调用该地址: url:http://xx.xx:xxxx/user/count 请求方法:post 内容类型:application/json 请求参数:id, username 返回参数:code 响应结果 int类型                  

    2024年02月12日
    浏览(12)
  • 【雕爷学编程】Arduino智能家居之连接到WiFi网络并发送GET请求获取数据

    【雕爷学编程】Arduino智能家居之连接到WiFi网络并发送GET请求获取数据

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月04日
    浏览(5)
  • Android 网络编程-网络请求

    Android 网络编程-网络请求

    本文介绍一下Android 网络请求,开发了简单demo,适合Android入门人员学习。 为啥要写这个??给应届生看的。。。 1、开发网络请求前的基本准备 2、普通网络请求代码 3、使用OkHttp网络框架请求网络代码 4、使用Retrofit网络框架请求网络代码 5、使用WebView显示对应网址的网页

    2024年02月13日
    浏览(9)
  • 解决Post请求JSON列表参数格式报错:JSON parse error: Cannot deserialize value of type `java.util.ArrayList<x>

    解决Post请求JSON列表参数格式报错:JSON parse error: Cannot deserialize value of type `java.util.ArrayList<x>

    今天在调试接口的时候,遇到一个问题。有一个post请求的json body参数, 然后vo里面只有两个属性,id和一个集合。 然后使用apifox调试接口的时候,发现json解析异常: 通过提示信息,可以发现是因为json结构不对导致解析不了。 我原来是这样传的,会报错: 应该给list加一层数

    2024年02月11日
    浏览(7)
  • Linux网络编程---IP 地址格式转换函数

    Linux网络编程---IP 地址格式转换函数

      我们更容易阅读的IP地址是以点分十进制表示的,例如:192.168.5.10 ,这是一种字符串的形式,但是计算器所需要的IP地址是以二进制进行表示,这便需要我们在点分十进制字符串和二进制地址之间进行转换。   点分十进制字符串和二进制地址之间的转换函数主要有:

    2024年01月18日
    浏览(9)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包