内存错误调完了
This commit is contained in:
@ -21,6 +21,7 @@
|
||||
#include <QGuiApplication>
|
||||
#include <QApplication>
|
||||
#include <ctime>
|
||||
#include <qDebug>
|
||||
#pragma comment(lib, "wbemuuid.lib")
|
||||
#ifdef _DEBUG
|
||||
#pragma comment(lib, "Qt5Networkd.lib")
|
||||
@ -47,7 +48,7 @@ RequestBodyBase::RequestBodyBase(){
|
||||
QString request_id=QString::fromWCharArray(unix_time);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
QString dir=QApplication::applicationDirPath();
|
||||
QFile *infFile=new QFile(dir+"config/information.kmd");
|
||||
QFile *infFile=new QFile(dir+"/config/information.kmd");
|
||||
if(!infFile->open(QIODevice::ReadOnly|QIODevice::Text)){
|
||||
QMessageBox::critical(nullptr,QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"));
|
||||
delete infFile;
|
||||
@ -83,18 +84,14 @@ RequestBodyBase::RequestBodyBase(){
|
||||
exit(1);
|
||||
}
|
||||
version=obj_root.value("version").toString();
|
||||
if(obj_root.value("device_id")==QJsonValue::Undefined){
|
||||
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||||
exit(1);
|
||||
}
|
||||
device_id=obj_root.value("device_id").toString();
|
||||
}else{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
QMessageBox::warning(nullptr,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
||||
exit(1);
|
||||
}
|
||||
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ϵͳ<CFB5>汾
|
||||
os="Windows";
|
||||
this->os="Windows";
|
||||
OSVERSIONINFOEX os;
|
||||
os.dwOSVersionInfoSize=sizeof(os);
|
||||
GetVersionEx((OSVERSIONINFO *)&os);
|
||||
@ -130,7 +127,7 @@ RequestBodyBase::RequestBodyBase(){
|
||||
//<2F><>ȡMachineGUID<49><44>ȡMD5<44><35>Ϊdevice_id
|
||||
QByteArray hash = QCryptographicHash::hash(getMachineGUID().toUtf8(), QCryptographicHash::Md5);
|
||||
device_id=hash.toHex();
|
||||
infFile=new QFile(".\\config\\information.kmd");
|
||||
infFile=new QFile(dir + "/config/information.kmd");
|
||||
if(!infFile->open(QIODevice::WriteOnly|QIODevice::Text)){
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"));
|
||||
@ -140,7 +137,7 @@ RequestBodyBase::RequestBodyBase(){
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>json<6F><6E><EFBFBD><EFBFBD>
|
||||
QJsonValue value=device_id;
|
||||
QJsonObject obj_root;
|
||||
QJsonObject obj_root = qJsonDocument.object();
|
||||
obj_root.insert("device_id",value);
|
||||
qJsonDocument.setObject(obj_root);
|
||||
//д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
@ -149,25 +146,24 @@ RequestBodyBase::RequestBodyBase(){
|
||||
infFile->close();
|
||||
delete infFile;
|
||||
}
|
||||
QJsonValue os_json(this->os);
|
||||
QJsonValue os_version_json(this->os_version);
|
||||
QJsonValue sign_json(QString("123456789890"));
|
||||
QJsonValue requestId_json=QJsonValue(request_id);
|
||||
QJsonObject obj_root;
|
||||
QJsonObject obj_root=qJsonDocument.object();
|
||||
//<2F><><EFBFBD><EFBFBD>request_id
|
||||
obj_root.insert("request_id",requestId_json);
|
||||
obj_root.insert("os", os_json);
|
||||
obj_root.insert("os_version", os_version_json);
|
||||
obj_root.insert("sign", sign_json);
|
||||
qJsonDocument.setObject(obj_root);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
|
||||
timer = new QTimer(this);
|
||||
timer = new QTimer(this);
|
||||
QNetworkAccessManager *httpMgr = new QNetworkAccessManager();
|
||||
/* QFile *file=new QFile(".\\config\\config.cfg");
|
||||
if(!file->open(QIODevice::ReadOnly|QIODevice::Text)){
|
||||
QMessageBox::warning(nullptr,"<22><><EFBFBD><EFBFBD>","<22><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
|
||||
file->close();
|
||||
delete file;
|
||||
exit(1);
|
||||
}*/
|
||||
QNetworkRequest requestInfo;
|
||||
//HTTP<54><50><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>ͷ
|
||||
@ -175,33 +171,40 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
|
||||
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
||||
reply = httpMgr->post(requestInfo,qJsonDocument.toJson());
|
||||
qDebug() << qJsonDocument.toJson();
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֹ
|
||||
connect(reply,&QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
|
||||
//<2F><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>ʱ
|
||||
connect(timer,&QTimer::timeout,this,&ConfigRequest::cancelDownload);
|
||||
timer->start(5000);
|
||||
//<2F><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
|
||||
eventLoop.exec();
|
||||
delete httpMgr;
|
||||
eventLoop.exec();
|
||||
timer->stop();
|
||||
//delete httpMgr;
|
||||
QJsonDocument result;
|
||||
configResponse=new ConfigResponse;
|
||||
memset(configResponse,0,sizeof(*configResponse));
|
||||
configResponse->succeed = false;
|
||||
//memset(configResponse,0,sizeof(*configResponse));
|
||||
auto error = reply->error();
|
||||
//<2F><><EFBFBD><EFBFBD>û<EFBFBD>д<EFBFBD><D0B4><EFBFBD>
|
||||
if(reply->error() == QNetworkReply::NoError) {
|
||||
result = QJsonDocument::fromJson(reply->readAll());
|
||||
}else{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
|
||||
configResponse->succeed=false;
|
||||
delete reply;
|
||||
//delete reply;
|
||||
delete timer;
|
||||
delete httpMgr;
|
||||
return;
|
||||
}
|
||||
qDebug() << result.toJson();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(result.isObject()){
|
||||
QJsonObject obj_root=result.object();
|
||||
QJsonArray array;
|
||||
array = obj_root.value("menu").toArray();
|
||||
configResponse->menus=new QList<Menu>;
|
||||
|
||||
auto i=0;
|
||||
for(auto value:array){
|
||||
QJsonObject object=value.toObject();
|
||||
@ -211,16 +214,18 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
|
||||
menu.title=object.value("title").toString();
|
||||
menu.func=object.value("func").toString();
|
||||
menu.url=object.value("url").toString();
|
||||
*configResponse->menus << menu;
|
||||
configResponse->menus << menu;
|
||||
i++;
|
||||
}
|
||||
}else{
|
||||
//<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
configResponse->succeed=false;
|
||||
delete reply;
|
||||
//delete reply;
|
||||
delete timer;
|
||||
delete httpMgr;
|
||||
return;
|
||||
}
|
||||
delete httpMgr;
|
||||
}
|
||||
void RequestBodyBase::cancelDownload() {
|
||||
disconnect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
|
||||
|
Reference in New Issue
Block a user