forked from ondra/server-sdk
114 lines
2.1 KiB
C++
114 lines
2.1 KiB
C++
#include "request.h"
|
|
#include "logger.h"
|
|
#include "requestmanager.h" // to get logger class
|
|
#include <QDebug>
|
|
#include <utility>
|
|
|
|
namespace serversdk {
|
|
|
|
|
|
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 ( not supported on Ubuntu 16.04 )
|
|
// request.setAttribute(QNetworkRequest::HTTP2AllowedAttribute, true);
|
|
return request;
|
|
}
|
|
|
|
|
|
void Request::appendData(const QByteArray &array)
|
|
{
|
|
mResponseData += array;
|
|
}
|
|
|
|
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
|