#include "linethread.h" #include LineThread::LineThread(QObject *parent) : QThread(parent) { naManagerLine = new QNetworkAccessManager(this); //QNetworkAccessManager 向前台发送消息,等消息finished之后,才可以触发收前台返回的数据(不能把发送前台消息操作和前台返回数据操作放在一个函数里处理,有先后顺序) QObject::connect(naManagerLine, &QNetworkAccessManager::finished, this, &LineThread::getData); } void LineThread::SendJSONData(QByteArray m_httpData) { QNetworkRequest request; QSettings sets("sys.ini", QSettings::IniFormat); QString lineUrl = sets.value("LINE_HTTPURL").toString(); //前端测试环境 //request.setUrl(QUrl(lineUrl)); QSslConfiguration config = request.sslConfiguration(); config.setPeerVerifyMode(QSslSocket::VerifyNone); config.setProtocol(QSsl::TlsV1SslV3); request.setSslConfiguration(config); request.setUrl(QUrl(lineUrl)); //request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json")); //前端生产环境 //request.setUrl(QUrl("http://121.40.217.77:8081/pt/ptLinePush")); reply = naManagerLine->post(request, m_httpData); } void LineThread::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/responseLineData-%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 LineThread::DealAccessDBData(QString lId,QString lName,QString placeId,QString lOrder,QString lNextPlaceTime,QString lStayTime) { if(db.open()){ bool found = false; QStringList tables = db.tables(); for(int i=0;i