#include "evalthread.h" #include EvalThread::EvalThread(QObject *parent) : QThread(parent) { naManagerEval = new QNetworkAccessManager(this); //QNetworkAccessManager 向前台发送消息,等消息finished之后,才可以触发收前台返回的数据(不能把发送前台消息操作和前台返回数据操作放在一个函数里处理,有先后顺序) QObject::connect(naManagerEval, &QNetworkAccessManager::finished, this, &EvalThread::getData); } void EvalThread::SendJSONData(QByteArray m_httpData) { QNetworkRequest request; QSettings sets("sys.ini", QSettings::IniFormat); QString evalUrl = sets.value("PLANSTATUS_HTTPURL").toString(); //前端测试环境 //request.setUrl(QUrl(evalUrl)); QSslConfiguration config = request.sslConfiguration(); config.setPeerVerifyMode(QSslSocket::VerifyNone); config.setProtocol(QSsl::TlsV1SslV3); request.setSslConfiguration(config); request.setUrl(QUrl(evalUrl)); //request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json")); //前端生产环境 //request.setUrl(QUrl("http://121.40.217.77:8081/pt/ptPlanStatusPush")); reply = naManagerEval->post(request, m_httpData); } void EvalThread::getData(QNetworkReply*) { QString responseData; reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); reply->attribute(QNetworkRequest::RedirectionTargetAttribute); QNetworkReply::NetworkError err = reply->error(); if(err != QNetworkReply::NoError) { responseData.append(QString("Failed: %1").arg(reply->errorString())); } else { // 获取返回内容 QString string = QString::fromUtf8(reply->readAll()); responseData.append(QString::fromUtf8("%1").arg(string)); } reply->deleteLater(); logList.append(responseData); QDate today = QDate::currentDate(); QFile file(QString("log/responseEvalData-%1%2%3.txt").arg(today.year(),4,10,QChar('0')).arg(today.month(),2,10,QChar('0')).arg(today.day(),2,10,QChar('0'))); if(file.open(QIODevice::Text|QIODevice::Append|QIODevice::WriteOnly)){ while (logList.length()>0) { file.write(logList.first().toUtf8()+"\n"); logList.removeFirst(); usleep(10000); } file.close(); } } void EvalThread::deleteEvalData() { //建立现有数据库连接(这个是在已存在数据库的基础上) db = QSqlDatabase::database("landwell_db"); //直接操作表 在插入运行当天数据之前,先清空表中的执行当天对应的数据 if(db.open()){ bool found = false; QStringList tables = db.tables(); for(int i=0;i