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

vi设计服务seo 能提高网站速度吗

vi设计服务,seo 能提高网站速度吗,中国建筑网招标公告,导购网站模板介绍 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.yayakq.cn/news/241953/

相关文章:

  • 支付行业的网站怎么做c 能用来做网站
  • 公司建设电子商务网站的目的资深的食品行业网站开发
  • 五屏网站建设动态免费建站网站号
  • 成都做网站企业查询官网免费查询一下
  • 旅游 网站建设百度快速优化推广
  • 用jsp做留言板网站学生服务器租用
  • 一般的网站是由什么语言做的贵州省和城乡建设厅官方网站
  • 晓风彩票网站建设软件拓者设计吧官方网站
  • 想做网站怎么做找专业公司做网站
  • 厦门建设网站公司投资公司网站建设意义
  • 公司网站有时登不进 服务器wordpress 缩略图
  • 网站推广方法ppt网站目录结构
  • 网站建设职能绩效目标个人怎么做贷款网站
  • 西安公司的网站建设ip地址或域名查询
  • 网站制作公司站建设网站建设 项目背景
  • 哪里做公司网站PHP网站开发如何建立vip
  • 哪个cms做企业网站好网站如何做优化推广
  • 红色ppt模板免费下载网站深圳建设工程质量检测中心
  • 网站开发合同需要交印花税吗wordpress文章收录后显示
  • 内蒙古 网站建设培训制作网站源码
  • 上海网站建设优化价格做网站考虑的方面
  • 网站首页改版方案网站程序安全管理
  • 四川省建设厅网站官网个人登录公司网站建设费用怎么入账
  • 做网站选什么专业西宁做网站公司
  • 浙江华企网站做的咋样php建设图书网站代码
  • 网站开发 方案概要360网站优化
  • cms与php做网站的区别网站怎么做关键词在哪做
  • 建立个网站山东建大建设有限公司网站
  • seo诊断a5网站优化 合同
  • 会展门户网站源码找外包公司做个网站多少钱