7 #include <Cutelyst/Engine> 8 #include <Cutelyst/Context> 9 #include <Cutelyst/Request> 10 #include <Cutelyst/Response> 12 #include <QHostAddress> 13 #include <QLoggingCategory> 14 #include <QNetworkAccessManager> 17 #include <QHttpMultiPart> 19 #include <QJsonDocument> 23 Q_LOGGING_CATEGORY(C_USERAGENT,
"cutelyst.useragent", QtInfoMsg)
34 return m_instance.
head(request);
39 return m_instance.
get(request);
44 return m_instance.
post(request, data);
49 return m_instance.
post(request, data);
54 return m_instance.
put(request, data);
59 return m_instance.
put(request, data);
74 #if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) 87 return m_instance.
post(request, multiPart);
92 return m_instance.
post(request, multiPart);
97 #if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) 107 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
108 return m_instance.
post(jsonRequest, doc.
toJson(QJsonDocument::Compact));
114 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
115 return m_instance.
put(jsonRequest, doc.
toJson(QJsonDocument::Compact));
121 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
122 return UA::sendCustomRequest(jsonRequest, verb, doc.
toJson(QJsonDocument::Compact));
128 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
129 return m_instance.
post(jsonRequest,
QJsonDocument(obj).toJson(QJsonDocument::Compact));
135 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
136 return m_instance.
put(jsonRequest,
QJsonDocument(obj).toJson(QJsonDocument::Compact));
142 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
143 return UA::sendCustomRequest(jsonRequest, verb,
QJsonDocument(obj).toJson(QJsonDocument::Compact));
149 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
150 return m_instance.
post(jsonRequest,
QJsonDocument(array).toJson(QJsonDocument::Compact));
156 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
157 return m_instance.
put(jsonRequest,
QJsonDocument(array).toJson(QJsonDocument::Compact));
163 jsonRequest.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral(
"application/json"));
164 return UA::sendCustomRequest(jsonRequest, verb,
QJsonDocument(array).toJson(QJsonDocument::Compact));
169 QUrl dest(request->uri());
171 dest.setPort(destination.
port());
172 dest.setScheme(destination.
scheme());
177 const auto headersData = reqHeaders.
data();
178 auto it = headersData.constBegin();
179 while (it != headersData.constEnd()) {
189 QNetworkReply *reply = forwardRequest(c->request(), destination);
202 void UA::forwardAsync(
Context *c,
const QUrl &destination)
204 QNetworkReply *reply = forwardRequest(c->request(), destination);
QNetworkReply * sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, QIODevice *data)
QNetworkReply * put(const QNetworkRequest &request, QIODevice *data)
QByteArray toJson() const const
Headers & headers() noexcept
static QString camelCaseHeader(const QString &headerKey)
QString host(QUrl::ComponentFormattingOptions options) const const
void setData(const QByteArray &data)
int port(int defaultPort) const const
uint toUInt(bool *ok) const const
QNetworkReply * deleteResource(const QNetworkRequest &request)
Headers headers() const noexcept
QNetworkReply * post(const QNetworkRequest &request, QIODevice *data)
The Cutelyst namespace holds all public Cutelyst API.
void detachAsync() noexcept
QString scheme() const const
void setParent(QObject *parent)
QNetworkReply * head(const QNetworkRequest &request)
QByteArray toLatin1() const const
QVariant attribute(QNetworkRequest::Attribute code) const const
QString fromLatin1(const char *str, int size)
void setHost(const QString &host, QUrl::ParsingMode mode)
QNetworkReply * get(const QNetworkRequest &request)
void setBody(QIODevice *body)
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Response * response() const noexcept
void setStatus(quint16 status) noexcept
void attachAsync()
attachAsync