5#ifndef CUTELYST_REQUEST_H
6#define CUTELYST_REQUEST_H
8#include <Cutelyst/cutelyst_global.h>
9#include <Cutelyst/headers.h>
10#include <Cutelyst/paramsmultimap.h>
12#include <QtCore/qobject.h>
13#include <QtCore/qstringlist.h>
29class CUTELYST_LIBRARY
Request final :
public QObject
32 Q_PROPERTY(QString hostname READ hostname CONSTANT)
33 Q_PROPERTY(quint16 port READ port CONSTANT)
34 Q_PROPERTY(QUrl uri READ uri CONSTANT)
35 Q_PROPERTY(QString base READ base CONSTANT)
36 Q_PROPERTY(QString path READ path CONSTANT)
37 Q_PROPERTY(QString match READ match CONSTANT)
38 Q_PROPERTY(QStringList arguments READ arguments CONSTANT)
39 Q_PROPERTY(QStringList args READ arguments CONSTANT)
40 Q_PROPERTY(
bool secure READ secure CONSTANT)
41 Q_PROPERTY(QVariant bodyData READ bodyData CONSTANT)
44 Q_PROPERTY(QString contentEncoding READ contentEncoding CONSTANT)
45 Q_PROPERTY(QString contentType READ contentType CONSTANT)
46 Q_PROPERTY(QString method READ method CONSTANT)
47 Q_PROPERTY(QString protocol READ protocol CONSTANT)
48 Q_PROPERTY(QString userAgent READ userAgent CONSTANT)
49 Q_PROPERTY(QString referer READ referer CONSTANT)
50 Q_PROPERTY(QString remoteUser READ remoteUser CONSTANT)
57 QHostAddress address()
const noexcept;
68 QString addressString()
const;
77 QString hostname()
const;
106 QString path()
const noexcept;
113 QString match()
const noexcept;
119 void setMatch(
const QString &match);
137 QStringList arguments()
const noexcept;
143 void setArguments(
const QStringList &arguments);
148 inline QStringList args()
const;
153 QStringList captures()
const noexcept;
159 void setCaptures(
const QStringList &captures);
168 bool secure()
const noexcept;
175 QIODevice *body()
const;
190 QVariant bodyData()
const;
196 QJsonDocument bodyJsonDocument()
const;
202 QJsonObject bodyJsonObject()
const;
208 QJsonArray bodyJsonArray()
const;
215 QVariantMap bodyParametersVariant()
const;
226 inline QString bodyParameter(
const QString &key,
const QString &defaultValue = {})
const;
233 QStringList bodyParameters(
const QString &key)
const;
243 inline QString bodyParam(
const QString &key,
const QString &defaultValue = {})
const;
250 inline QStringList bodyParams(
const QString &key)
const;
259 QString queryKeywords()
const;
266 QVariantMap queryParametersVariant()
const;
277 inline QString queryParameter(
const QString &key,
const QString &defaultValue = {})
const;
284 QStringList queryParameters(
const QString &key)
const;
295 inline QString queryParam(
const QString &key,
const QString &defaultValue = {})
const;
302 inline QStringList queryParams(
const QString &key)
const;
307 inline QString contentEncoding()
const;
312 inline QString contentType()
const;
317 QString cookie(
const QString &name)
const;
324 QStringList cookies(
const QString &name)
const;
334 inline QString header(
const QString &key)
const;
339 Headers headers()
const noexcept;
344 QString method()
const noexcept;
349 bool isPost()
const noexcept;
354 bool isGet()
const noexcept;
359 bool isHead()
const noexcept;
364 bool isPut()
const noexcept;
369 bool isPatch()
const noexcept;
374 bool isDelete()
const noexcept;
379 QString protocol()
const noexcept;
385 bool xhr()
const noexcept;
390 inline QString userAgent()
const;
395 inline QString referer()
const;
400 QString remoteUser()
const noexcept;
405 QVector<Upload *> uploads()
const;
411 QMultiMap<QString, Upload *> uploadsMap()
const;
416 Uploads uploads(
const QString &name)
const;
423 inline Upload *upload(
const QString &name)
const;
463 QUrl uriWith(
const ParamsMultiMap &args,
bool append =
false)
const;
468 Engine *engine()
const noexcept;
516 RequestPrivate *d_ptr;
526inline QStringList Request::args()
const
546inline QStringList Request::bodyParams(
const QString &key)
const
566inline QStringList Request::queryParams(
const QString &key)
const
571inline QString Request::contentEncoding()
const
576inline QString Request::contentType()
const
586inline QString Request::userAgent()
const
591inline QString Request::referer()
const
The Cutelyst Application.
QMultiMap< QString, Upload * > uploadsMap() const
void webSocketBinaryMessage(const QByteArray &message, Cutelyst::Context *c)
Emitted when the websocket receives a binary message, this accounts for all binary frames till the la...
QString queryParameter(const QString &key, const QString &defaultValue={}) const
void webSocketBinaryFrame(const QByteArray &message, bool isLastFrame, Cutelyst::Context *c)
Emitted when the websocket receives a binary frame, this is usefull for parsing big chunks of data wi...
QString bodyParameter(const QString &key, const QString &defaultValue={}) const
QString header(const QString &key) const
ParamsMultiMap bodyParameters() const
void webSocketTextFrame(const QString &message, bool isLastFrame, Cutelyst::Context *c)
Emitted when the websocket receives a text frame, this is usefull for parsing big chunks of data with...
void webSocketPong(const QByteArray &payload, Cutelyst::Context *c)
Emitted when the websocket receives a pong frame, which might include a payload.
void webSocketClosed(quint16 closeCode, const QString &reason)
Emitted when the websocket receives a close frame, including a close code and a reason,...
void webSocketTextMessage(const QString &message, Cutelyst::Context *c)
Emitted when the websocket receives a text message, this accounts for all text frames till the last o...
Headers headers() const noexcept
ParamsMultiMap queryParameters() const
QString queryParam(const QString &key, const QString &defaultValue={}) const
QString bodyParam(const QString &key, const QString &defaultValue={}) const
Upload * upload(const QString &name) const
Cutelyst Upload handles file upload request
The Cutelyst namespace holds all public Cutelyst API.
QVector< Upload * > Uploads
QMultiMap< QString, QString > ParamsMultiMap