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

线上少儿编程网站开发怎么建设网站怎么样

线上少儿编程网站开发,怎么建设网站怎么样,怎么做彩票游戏网站,猪八戒网做网站介绍 QT的HTTP模块封装的交互类#xff0c;线程运行。使用时添加自己的业务逻辑即可 代码 头文件 /*** file httpcontroller.h* brief 云台相机的协议交互类* author xintong-zhou* date 2024-03-13*/#ifndef HTTPCONTROLLER_H #define HTTPCONTROLLER_H#include QNet…介绍 QT的HTTP模块封装的交互类线程运行。使用时添加自己的业务逻辑即可 代码 头文件 /*** file httpcontroller.h* brief 云台相机的协议交互类* author xintong-zhou* date 2024-03-13*/#ifndef HTTPCONTROLLER_H #define HTTPCONTROLLER_H#include QNetworkReply #include QNetworkRequest #include QNetworkAccessManager #include QUrlQuery #include QHttpMultiPart #include QHttpPart #include QJsonArray #include QJsonDocument #include QJsonObject #include QJsonParseError #include QJsonValue #include QCryptographicHash #include QThreadclass HttpWorker : public QObject {Q_OBJECTpublic:HttpWorker();~HttpWorker();/*** brief 某条信息的处理* param object json对象*/void dealXXInfo(const QJsonObject object);public slots:/*** brief 执行请求* param url 请求地址* param arg 请求参数*/void slotPostHttpRequest(const QString url, const QJsonObject obj);/*** brief 保存交互返回数据*/void slotReadyRead();void slotReplyFinished();/*** brief 返回数据接收完毕分发处理* param recvBuffer 接收到的json数据*/void slotRecvData(const QByteArray recvBuffer);signals:/*** brief 向上转发结果*/void sigResult();private:QNetworkAccessManager *m_pManager nullptr; };class HttpController : public QObject {Q_OBJECT public:explicit HttpController(QObject *parent nullptr);~HttpController();/*** brief 设置时间日期* param datetime 时间日期*/void setDateTimeInfo(const QDateTime datetime);public slots:/*** brief 线程退出*/void slotExitThread();/*** brief 向上转发结果*/void slotResult();signals:/*** brief 执行请求* param url 请求地址* param arg 请求参数*/void sigPostHttpRequest(const QString url, const QJsonObject obj);private://工作类、线程HttpWorker *m_pWorker nullptr;QThread m_thread;//请求url以及参数值QString m_serverIP;QString m_url;QString m_arg; };#endif // HTTPCONTROLLER_H 实现文件 #include httpcontroller.hHttpWorker::HttpWorker() {m_pManager new QNetworkAccessManager(this); }HttpWorker::~HttpWorker() {if(m_pManager ! nullptr){delete m_pManager;m_pManager nullptr;} }void HttpWorker::dealXXInfo(const QJsonObject object) {}void HttpWorker::slotPostHttpRequest(const QString url, const QJsonObject obj) {QJsonDocument jsonDoc QJsonDocument(obj);QByteArray argInfo jsonDoc.toJson(QJsonDocument::Compact);qDebug() post HttpRequest url argInfo;QNetworkRequest request;request.setUrl(QUrl(url));request.setHeader(QNetworkRequest::ContentTypeHeader, application/json);request.setHeader(QNetworkRequest::ContentLengthHeader, argInfo.length());QNetworkReply *reply m_pManager-post(request, argInfo);connect(reply, QNetworkReply::readyRead, this, HttpWorker::slotReadyRead);connect(reply, QNetworkReply::finished, this, HttpWorker::slotReplyFinished);}void HttpWorker::slotReadyRead() {}void HttpWorker::slotReplyFinished() {QNetworkReply *reply qobject_castQNetworkReply *(sender());if(reply nullptr){qDebug() replyFinished Reply nullptr;return;}QByteArray byteArray reply-readAll();if(byteArray.isEmpty()){qDebug() replyFinished ByteArray empty;return;}//处理最终数据slotRecvData(byteArray);//清理资源reply-deleteLater(); }void HttpWorker::slotRecvData(const QByteArray recvBuffer) {QJsonParseError jsonerror;QJsonDocument doc QJsonDocument::fromJson(recvBuffer, jsonerror);if (doc.isNull() || jsonerror.error ! QJsonParseError::NoError){QString info(recvBuffer);if(!info.isEmpty()){qDebug() recvData parseJson error jsonerror.errorString() info;}return;}//解析json数据QJsonObject object doc.object();QString cmd object.value(cmd).toString();QJsonObject paramObj object.value(param).toObject();//进行业务分发if(timeSetWeb cmd){dealXXInfo(object);}else if(timeSetWeb cmd){} }HttpController::HttpController(QObject *parent) : QObject(parent) {//请求urlm_serverIP 192.168.25.111;m_url m_serverIP /api/XX;m_pWorker new HttpWorker();m_pWorker-moveToThread(m_thread);connect(m_thread, QThread::finished, this,HttpController::slotExitThread);connect(this, HttpController::sigPostHttpRequest, m_pWorker, HttpWorker::slotPostHttpRequest);connect(m_pWorker, HttpWorker::sigResult, this, HttpController::slotResult);m_thread.start(); }HttpController::~HttpController() {if(m_pWorker){delete m_pWorker;m_pWorker nullptr;}slotExitThread(); }void HttpController::setDateTimeInfo(const QDateTime datetime) {//封装信息QJsonObject obj;obj.insert(cmd, timeSetWeb);QJsonObject param;param.insert(token, 0);param.insert(dateformat, 0);param.insert(timeformat, 1);param.insert(manually, 0);param.insert(year, datetime.date().year());param.insert(month, datetime.date().month());param.insert(day, datetime.date().day());param.insert(hour, datetime.time().hour());param.insert(minute, datetime.time().minute());param.insert(second, datetime.time().second());obj.insert(param, param);emit sigPostHttpRequest(m_url, obj); }void HttpController::slotExitThread() {m_thread.quit();m_thread.wait(); }void HttpController::slotResult() {}
http://www.dnsts.com.cn/news/136648.html

相关文章:

  • 中国建设银行贵州分行网站南阳网站推广价格
  • 网站建设与企业发展手机制作网站主页软件
  • 龙胜网站建设公司seo专员工作容易学吗
  • js 捕获网站异常插件织梦做的网站能做seo吗
  • 什么公司会招网站建设网站seo文章该怎么写
  • 专门做护肤品网站网站空间怎么收费
  • 建站是什么东西怎么看网站是什么程序
  • 在自己网站建立自己的外链建设通网站有法律
  • 网站404页面查询上海的软件外包公司
  • 网上做一道题2元的网站宝安做网站怎么样
  • 宣传品牌网站建设响应式网站一般做几个版本
  • 360提示危险的网站网页游戏开发技术有哪些
  • 用dreamever如何建设网站公司网站建设有用吗
  • 用php做高中数学题库网站湖南建筑行业
  • 国内设计网站公司合肥建设工程信息网官网
  • 网易建站模板响应式布局网站尺寸
  • 临沂网站建设哪家更好新材料 东莞网站建设
  • 企业网站建设申请域名出入长沙今天最新通知
  • 上海官方网站建设司瓦图网站
  • 一级造价工程师报名时间南京seo网络优化公司
  • 平台网站建设ppt模板软件定制开发是什么意思
  • 黄龙云 加强网站建设好看的网站首页欣赏
  • 房产网站制作模板网站建设公司佛山
  • 网站开发有什么做推送封图的网站
  • c 网站开发面试题网络营销哪家比较专业
  • 网站建设过程中应该注意的事项有免费代加工项目合作
  • 大型网站建设制作平台个人域名注册入口
  • 免费个人网站注册方法网站维护案
  • 做网站电脑需要配置很好吗电脑网页上的视频怎么保存到本地
  • 网站建设与管理维护青岛企业建设网站公司