File indexing completed on 2025-03-09 04:23:15
0001 #include <QByteArray> 0002 #include <QMap> 0003 #include <QNetworkAccessManager> 0004 #include <QString> 0005 #include <QUrl> 0006 0007 #include "NetworkHelper.hpp" 0008 0009 NetworkHelper::NetworkHelper(QString host, QString username, QString password) 0010 { 0011 this->host = host; 0012 this->username = username; 0013 this->password = password; 0014 0015 this->networkManager = new QNetworkAccessManager(this); 0016 } 0017 0018 QNetworkReply *NetworkHelper::makeRequest(QString method, QString path, QMap<QString, QString> headers) 0019 { 0020 QNetworkRequest request(QUrl(this->host + QStringLiteral("/") + path)); 0021 0022 this->setRequestAuthHeader(&request); 0023 this->setRequestHeaders(&request, headers); 0024 0025 QNetworkReply *reply = this->networkManager->sendCustomRequest(request, QByteArray::fromStdString(method.toStdString())); 0026 0027 return reply; 0028 } 0029 0030 QNetworkReply *NetworkHelper::makePutRequest(QString path, QMap<QString, QString> headers, QIODevice *file) 0031 { 0032 QNetworkRequest request(QUrl(this->host + QStringLiteral("/") + path)); 0033 0034 this->setRequestAuthHeader(&request); 0035 this->setRequestHeaders(&request, headers); 0036 0037 QNetworkReply *reply = this->networkManager->put(request, file); 0038 0039 return reply; 0040 } 0041 0042 void NetworkHelper::setRequestAuthHeader(QNetworkRequest *request) 0043 { 0044 QString authData = this->username + QStringLiteral(":") + this->password; 0045 QByteArray data = authData.toLocal8Bit().toBase64(); 0046 QString headerData = QStringLiteral("Basic ") + QString::fromStdString(data.toStdString()); 0047 0048 request->setRawHeader("Authorization", headerData.toLocal8Bit()); 0049 } 0050 0051 void NetworkHelper::setRequestHeaders(QNetworkRequest *request, QMap<QString, QString> headers) 0052 { 0053 QMapIterator<QString, QString> headersIterator(headers); 0054 0055 while (headersIterator.hasNext()) { 0056 headersIterator.next(); 0057 request->setRawHeader(QByteArray::fromStdString(headersIterator.key().toStdString()), QByteArray::fromStdString(headersIterator.value().toStdString())); 0058 } 0059 }