当前位置: 首页 > 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 <QThread>class 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.h"HttpWorker::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_cast<QNetworkReply *>(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.khdw.cn/news/23875.html

相关文章:

  • wordpress代码安装畅言石家庄seo优化
  • 网站程序开发如何成为百度广告代理商
  • 学会网站建设三方协议网站推广的四个阶段
  • 市场营销策划方案汕尾网站seo
  • 那里可以做网站的吗html家乡网站设计
  • 建网站外包公司2345网址导航是病毒吗
  • u盘做网站网上推销产品去什么平台
  • b2c电子商务网站大全做seo推广公司
  • 网站做滚动图片免费入驻的跨境电商平台
  • 做网站托管推广赚佣金的软件排名
  • 制作网站联系方式长沙seo计费管理
  • 网站开发助理做什么淘宝如何刷关键词增加权重
  • 可以做微信推送的网站舆情分析报告模板
  • 免费游戏源码优化大师
  • 龙岩网站建设亿网行广告公司接单软件
  • 如何做网站营销百度seo关键词优化市场
  • 网站建设SEO优化网页制作素材模板
  • 做推广的网站带宽需要多少合适谷歌搜索引擎免费入口 台湾
  • 网站面包屑怎么做aso优化的主要内容
  • 如何自制网站站长工具网站测速
  • 自己怎么建立个人网站推广平台哪个效果最好
  • 最专业的做音乐网站品牌营销策略包括哪些内容
  • wordpress国外vps纯手工seo公司
  • 用什么软件做介绍视频网站网络销售
  • 织梦影视网站源码国内做seo最好公司
  • 推荐网站建设品牌最近的新闻摘抄
  • 技术支持 湖州网站建设如何进行电子商务网站推广
  • 网站开发合同注意事件有哪些网络怎么推广自己的产品
  • 网站做3年3年包括什么软件吗网站seo文章
  • 郑州做网站和域名填写电话的广告