server-sdk/src/serversdk/request.cpp

127 lines
2.4 KiB
C++

#include "request.h"
#include "logger.h"
#include "requestmanager.h" // to get logger class
#include <QDebug>
#include <utility>
namespace serversdk {
Request::Request(QString type, QString url, QByteArray requestData)
: mType(type), mUrl(url), mRequestData(requestData)
{
}
Request::~Request()
{
}
QNetworkRequest Request::networkRequest() const
{
QNetworkRequest request(QUrl(this->mUrl));
if ( !userName().isEmpty() && !password().isEmpty() )
request.setRawHeader("Authorization", this->basicAuthorization().toUtf8());
if ( !token().isEmpty() ) {
request.setRawHeader("Authorization", this->bearerAuthorization().toUtf8());
}
// Enabled compression
#ifdef CORESDK_ZLIB
request.setRawHeader("Accept-Encoding", "gzip, deflate");
#endif
// Enabling HTTP/2 ( does not work on Qt 5.9.8 )
// request.setAttribute(QNetworkRequest::HTTP2AllowedAttribute, true);
return request;
}
void Request::appendData(const QByteArray &array)
{
mResponseData += array;
}
QString Request::type() const
{
return mType;
}
void Request::setType(const QString &type)
{
mType = type;
}
QString Request::url() const
{
return mUrl;
}
void Request::setUrl(const QString &url)
{
mUrl = url;
}
QByteArray Request::responseData() const
{
return mResponseData;
}
QByteArray Request::requestData() const
{
return mRequestData;
}
void Request::setRequestData(const QByteArray &requestData)
{
mRequestData = requestData;
}
QString Request::token() const
{
return mToken;
}
void Request::setToken(const QString &token)
{
mToken = token;
}
QString Request::userName() const
{
return mUserName;
}
void Request::setUserName(const QString &username)
{
mUserName = username;
}
QString Request::password() const
{
return mPassword;
}
void Request::setPassword(const QString &password)
{
mPassword = password;
}
QString Request::basicAuthorization() const
{
// HTTP Basic authentication header value: base64(username:password)
QString concatenated = userName() + ":" + password();
QByteArray data = concatenated.toLocal8Bit().toBase64();
QString headerData = "Basic " + data;
return headerData;
//request.setRawHeader("Authorization", headerData.toLocal8Bit());
}
QString Request::bearerAuthorization() const
{
qCDebug(sdknetwork) << "not implemented yet";
return QString();
}
} // core