mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-16 17:11:37 +08:00
48 lines
1.7 KiB
C++
48 lines
1.7 KiB
C++
#include "httprequest.h"
|
|
|
|
HttpRequest::HttpRequest(QObject *parent):QObject(parent)
|
|
{
|
|
QString headers = "Mozilla/5.0 Spark-Store/"+ QString(APP_VERSION)+" (Linux; "+QSysInfo::prettyProductName().toUtf8()+");";
|
|
QByteArray ba = headers.toLatin1();
|
|
rawHeaders = strdup(ba.data());
|
|
}
|
|
// 在析构函数中释放 rawHeaders 的内存
|
|
HttpRequest::~HttpRequest()
|
|
{
|
|
free(rawHeaders);
|
|
}
|
|
|
|
void HttpRequest::getRequest(QNetworkRequest request)
|
|
{
|
|
QNetworkAccessManager *naManager = new QNetworkAccessManager(this);
|
|
request.setRawHeader("User-Agent", rawHeaders);
|
|
request.setRawHeader("Content-Type", "charset='utf-8'");
|
|
request.setRawHeader("Content-Type", "application/json");
|
|
|
|
naManager->get(request);
|
|
QObject::connect(naManager, &QNetworkAccessManager::finished, this, &HttpRequest::readdata_slot);
|
|
}
|
|
void HttpRequest::readdata_slot(QNetworkReply *reply)
|
|
{
|
|
emit finished(reply->readAll());
|
|
}
|
|
QString HttpRequest::postRequest(QString url, QString jsondata)
|
|
{
|
|
QByteArray array = jsondata.toLatin1();
|
|
QNetworkRequest request;
|
|
QNetworkAccessManager *naManager = new QNetworkAccessManager(this);
|
|
QUrl strUrl = url.replace("+", "%2B");
|
|
request.setUrl(strUrl);
|
|
request.setRawHeader("User-Agent", rawHeaders);
|
|
request.setRawHeader("Content-Type", "charset='utf-8'");
|
|
request.setRawHeader("Content-Type", "application/json");
|
|
|
|
QNetworkReply *reply = naManager->post(request, array);
|
|
QEventLoop eventLoop;
|
|
connect(naManager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));
|
|
eventLoop.exec();
|
|
QString strReply(reply->readAll());
|
|
reply->deleteLater();
|
|
return strReply;
|
|
}
|