当前位置: 首页 > news >正文

qt学习:实战 http请求获取qq的吉凶

目录

利用的api是 聚合数据 的qq号码测吉凶

编程步骤

配置ui界面

添加头文件,定义网络管理者和http响应槽函数

在界面的构造函数里创建管理者对象,关联http响应槽函数

实现按钮点击事件

实现槽函数

效果


利用的api是 聚合数据 的qq号码测吉凶

  1. 先进入到聚合数据的首页,注册创建账户,个人认证
  2. 点击API,选择qq号码测吉凶,然后申请
  3. 进入qq号码测吉凶看接口文档
  4. 获取api的接口地址,请求头部,请求传输,回应json格式,自己的api key,代码中会用到,api key在左上角个人中心,选择左边的数据中心--我的API 获取。不要透露给别人,

编程步骤

配置ui界面

添加头文件,定义网络管理者和http响应槽函数

#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>private slots:void onReplyDataSlot(QNetworkReply *reply);private:QNetworkAccessManager *manager;

在界面的构造函数里创建管理者对象,关联http响应槽函数

    //1、创建一个网络访问管理者对象manager = new QNetworkAccessManager;//3、当发送网络请求之后,服务器进行http应答,manager会自动发射finished信号,关联槽函数//在槽函数中接收应答的数据//void  finished(QNetworkReply *reply) reply就是服务器应答的数据包connect(manager,&QNetworkAccessManager::finished,this,&Widget::onReplyDataSlot);

实现按钮点击事件

    //2、实例化一个网络请求类的对象,将网络数据包放到该对象中QString key = "填写自己的api key";//API keyQString qq = ui->lineEdit->text();//前面的是接口地址QString strUrl = QString("http://japi.juhe.cn/qqevaluate/qq?qq=%1&key=%2").arg(qq).arg(key);QUrl url(strUrl);QNetworkRequest request(url);//请求头部  接口文档里面有,自动会帮我们组合好request.setRawHeader("Content-Type","application/x-www-form-urlencoded");//发送网络请求 writemanager->get(request);

实现槽函数

    //获取应答的数据,该数据就是图片的源数据QByteArray data = reply->readAll();//解析jsonQJsonDocument doc = QJsonDocument::fromJson(data);QJsonObject object =  doc.object();//通过 键 得到 值 ---json对象QJsonObject resultObject = object.value("result").toObject();//通过 "data" 键 得到 值 ---json对象QJsonObject dataObject = resultObject.value("data").toObject();//通过键 conclusion 得到 值QString conclusion = dataObject.value("conclusion").toString();QString analysis = dataObject.value("analysis").toString();ui->textBrowser->setText(conclusion + "\n" +analysis);

效果

http://www.lryc.cn/news/288483.html

相关文章:

  • 【NodeJS JS】动态加载字体的各方式及注意事项;
  • 每次请求sessionid变化【SpringBoot+Vue】
  • 勤学苦练“prompts“,如沐春风“CodeArts Snap“
  • springboot(ssm线上医院挂号系统 在线挂号预约系统Java系统
  • 万界星空科技可视化数据大屏的作用
  • 5月22日比特币披萨日,今天你吃披萨了吗?
  • 内网穿透、远程桌面、VPN的理解
  • 如何发布自己的npm包,详细流程
  • 【书生·浦语大模型实战】“PDF阅读小助手”学习笔记
  • 用ChatGPT写申请文书写进常春藤联盟?
  • uni-app导航栏自定义“返回按钮”多种方法设置原生返回
  • 【kubernets】kubelet证书单独更新
  • 【STM32】STM32学习笔记-硬件SPI读写W25Q64(40)
  • 防御保护---安全策略
  • RustDesk私有化部署,自建远程桌面搭建教程
  • Flutter环境搭建【win10虚拟机】+夜神模拟器【主机】
  • 【数据结构和算法】种花问题
  • Vite+Electron快速构建一个VUE3桌面应用(一)
  • 第二百八十九回
  • Likeshop多商户商城源码系统,支持二开
  • Excel:将截面数据转换成面板数据
  • 209.长度最小的子数组(力扣LeetCode)
  • Docker容器部署OpenCV,打造高效可移植的计算机视觉开发环境
  • 【Linux】Linux系统编程——pwd命令
  • 暴力破解
  • VirtualBox安装Ubuntu22.04
  • 85 总结一下最近遇到的一些 jar发布 相关的知识
  • Vue组件之间的通信方式都有哪些
  • C# 只读文件删除提示失败,给文件修改属性
  • Redis 实际项目中的整合,记录各种用法