C++ QT框架QNetworkAccessManager,Request HTTP请求模块

json对象构建

实例 创建一个对象
QJsonObject::QJsonObject()

将键值对添加到QJsonObject对象中
QJsonObject::iterator insert(const QString &key,const QJsonValue &value);

//构建json对象
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonDocument>



QJsonObject rootObj;
rootObj.insert("name","lieli");

//构建数组
QJsonArray provinceArray;
QJsonObject sdObj;

dObj.insert("phone","19991111111");
sdObj.insert("emint","123@1.com");
provinceArray.append(sdObj);
rootObj.insert("provinces",provinceArray);
QJsonDocument doc(rootObj);
QByteArray json = doc.toJson();

//qDebug
 {
      "name":"lilei",
      "provinces": [
            {
                "emint": "123@1.com",
                "phone": "19991111111"
            }
        ]
  }

在.h 头文件写入

#include <QNetworkAccessManager>

protected:
    void getWeatherInfo();//发请求的http

private:
    QNetworkAccessManager* mNetAccessMsg;

在.cpp文件开始写

void MainWindow::getWeatherInfo()
{
    QJsonObject body; //构建json 对象用来装请求携带的参数
    QString phones = ui->phone->text();
    QString upwd = ui->upwd->text();

    //非空校验,有条件可以匹配正则校验
    if(phones.isEmpty() || upwd.isEmpty()){
        QMessageBox::warning(this,"title","手机号或密码不能为空",QMessageBox::Ok);
    }

    body.insert("phone",phones);

    body.insert("upwd",upwd);
    QByteArray postData;
    postData.append(QJsonDocument(body).toJson());

    QUrl url("http://你的接口地址/api/phone/login");
    QNetworkRequest request;
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");//header请求头
    request.setUrl(url);
    mNetAccessMsg->post(request, postData);  //发起post 请求

}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值