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)
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;
148 inline QStringList args()
const;
153 QStringList
captures()
const noexcept;
168 bool secure()
const noexcept;
175 QIODevice *
body()
const;
190 QVariant bodyData()
const;
226 inline QString
bodyParameter(
const QString &key,
const QString &defaultValue = {})
const;
243 inline QString
bodyParam(
const QString &key,
const QString &defaultValue = {})
const;
250 inline QStringList bodyParams(
const QString &key)
const;
277 inline QString
queryParameter(
const QString &key,
const QString &defaultValue = {})
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;
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;
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;
516 RequestPrivate *d_ptr;
519 friend class Application;
520 friend class Dispatcher;
521 friend class DispatchType;
522 friend class Context;
QMultiMap< QString, Upload * > uploadsMap() const
QVariantMap bodyParametersVariant() 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...
QVariantMap queryParametersVariant() const
QString queryParameter(const QString &key, const QString &defaultValue={}) const
QString addressString() 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...
bool isGet() const noexcept
QString queryKeywords() const
QString bodyParameter(const QString &key, const QString &defaultValue={}) const
QVector< Upload * > uploads() const
QString header(const QString &key) const
ParamsMultiMap bodyParameters() const
QJsonArray bodyJsonArray() const
bool xhr() const noexcept
QJsonObject bodyJsonObject() const
ParamsMultiMap queryParams() const
QStringList captures() const noexcept
bool isPut() const noexcept
bool isDelete() const noexcept
QUrl uriWith(const ParamsMultiMap &args, bool append=false) const
bool isPost() const noexcept
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,...
ParamsMultiMap bodyParams() const
QJsonDocument bodyJsonDocument() const
ParamsMultiMap mangleParams(const ParamsMultiMap &args, bool append=false) const
void setCaptures(const QStringList &captures)
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
QStringList cookies(const QString &name) const
ParamsMultiMap queryParameters() const
QString queryParam(const QString &key, const QString &defaultValue={}) const
QString cookie(const QString &name) const
bool isPatch() const noexcept
Engine * engine() const noexcept
QString bodyParam(const QString &key, const QString &defaultValue={}) const
Request(EngineRequest *engineRequest)
QString contentEncoding() const
bool isHead() const noexcept
void setArguments(const QStringList &arguments)
QStringList arguments() const noexcept
QHostAddress address() const noexcept
QString contentType() const
Upload * upload(const QString &name) const
void setMatch(const QString &match)
QString userAgent() const
Cutelyst Upload handles file upload request
The Cutelyst namespace holds all public Cutelyst API.
QVector< Upload * > Uploads
QMultiMap< QString, QString > ParamsMultiMap