cutelyst  3.9.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
Signals | Public Member Functions | Properties | Friends | List of all members
Cutelyst::Request Class Referencefinal
Inheritance diagram for Cutelyst::Request:
Inheritance graph
[legend]

Signals

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 without waiting till the whole message arives.
 
void webSocketBinaryMessage (const QByteArray &message, Cutelyst::Context *c)
 Emitted when the websocket receives a binary message, this accounts for all binary frames till the last one.
 
void webSocketClosed (quint16 closeCode, const QString &reason)
 Emitted when the websocket receives a close frame, including a close code and a reason, it's also emitted when the connection closes without the client sending the close frame. More...
 
void webSocketPong (const QByteArray &payload, Cutelyst::Context *c)
 Emitted when the websocket receives a pong frame, which might include a payload.
 
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 without waiting till the whole message arives.
 
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 one.
 

Public Member Functions

 Request (EngineRequest *engineRequest)
 
QHostAddress address () const noexcept
 
QString addressString () const
 
QStringList args () const
 
QStringList arguments () const noexcept
 
QString base () const
 
QIODevicebody () const
 
QVariant bodyData () const
 
QJsonArray bodyJsonArray () const
 
QJsonDocument bodyJsonDocument () const
 
QJsonObject bodyJsonObject () const
 
QString bodyParam (const QString &key, const QString &defaultValue={}) const
 
QString bodyParameter (const QString &key, const QString &defaultValue={}) const
 
ParamsMultiMap bodyParameters () const
 
QStringList bodyParameters (const QString &key) const
 
QVariantMap bodyParametersVariant () const
 
ParamsMultiMap bodyParams () const
 
QStringList bodyParams (const QString &key) const
 
QStringList captures () const noexcept
 
QString contentEncoding () const
 
QString contentType () const
 
QString cookie (const QString &name) const
 
QStringList cookies (const QString &name) const
 
ParamsMultiMap cookies () const
 
Engineengine () const noexcept
 
QString header (const QString &key) const
 
Headers headers () const noexcept
 
QString hostname () const
 
bool isDelete () const noexcept
 
bool isGet () const noexcept
 
bool isHead () const noexcept
 
bool isPatch () const noexcept
 
bool isPost () const noexcept
 
bool isPut () const noexcept
 
ParamsMultiMap mangleParams (const ParamsMultiMap &args, bool append=false) const
 
QString match () const noexcept
 
QString method () const noexcept
 
QString path () const noexcept
 
quint16 port () const
 
QString protocol () const noexcept
 
QString queryKeywords () const
 
QString queryParam (const QString &key, const QString &defaultValue={}) const
 
QString queryParameter (const QString &key, const QString &defaultValue={}) const
 
ParamsMultiMap queryParameters () const
 
QStringList queryParameters (const QString &key) const
 
QVariantMap queryParametersVariant () const
 
ParamsMultiMap queryParams () const
 
QStringList queryParams (const QString &key) const
 
QString referer () const
 
QString remoteUser () const noexcept
 
bool secure () const noexcept
 
void setArguments (const QStringList &arguments)
 
void setCaptures (const QStringList &captures)
 
void setMatch (const QString &match)
 
Uploadupload (const QString &name) const
 
QVector< Upload * > uploads () const
 
Uploads uploads (const QString &name) const
 
QMultiMap< QString, Upload * > uploadsMap () const
 
QUrl uri () const
 
QUrl uriWith (const ParamsMultiMap &args, bool append=false) const
 
QString userAgent () const
 
bool xhr () const noexcept
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
QBindable< QStringbindableObjectName ()
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const QObject *receiver, const char *method) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
void dumpObjectInfo () const const
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isQuickItemType () const const
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_GADGET_EXPORT (EXPORT_MACRO)
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_MOC_INCLUDE Q_MOC_INCLUDE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setObjectName (QAnyStringView name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool setProperty (const char *name, QVariant &&value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType)
 
QThreadthread () const const
 

Properties

QStringList args
 
QStringList arguments
 
QString base
 
QVariant bodyData
 
Cutelyst::ParamsMultiMap bodyParams
 
QString contentEncoding
 
QString contentType
 
QString hostname
 
QString match
 
QString method
 
QString path
 
quint16 port
 
QString protocol
 
Cutelyst::ParamsMultiMap queryParams
 
QString referer
 
QString remoteUser
 
bool secure
 
QUrl uri
 
QString userAgent
 
- Properties inherited from QObject
 objectName
 

Friends

class Application
 
class Context
 
class Dispatcher
 
class DispatchType
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Detailed Description

Definition at line 29 of file request.h.

Constructor & Destructor Documentation

◆ Request()

Request::Request ( Cutelyst::EngineRequest engineRequest)

Constructs a new Request object.

Definition at line 19 of file request.cpp.

References Cutelyst::EngineRequest::body.

Member Function Documentation

◆ address()

QHostAddress Request::address ( ) const
noexcept

Returns the address of the client

Definition at line 33 of file request.cpp.

◆ addressString()

QString Request::addressString ( ) const

Returns the address as string of the client.

When using IPv6 sockets to listen to both IPv4 and IPv6 sockets the output of QHostAddress might be something like "::ffff:127.0.0.1", which is not a bug and a valid address, but from an application point of view this might not be interesting to have, so this function checks if it's possible to convert to an IPv4 address and returns "127.0.0.1".

Definition at line 39 of file request.cpp.

References QHostAddress::toString().

◆ args()

QStringList Cutelyst::Request::args ( ) const
inline

Shortcut for arguments()

Referenced by mangleParams(), and uriWith().

◆ arguments()

QStringList Cutelyst::Request::arguments ( ) const
noexcept

Returns a list of string containing the arguments. For example, if your action was

class foo : public Cutelyst::Controller
{
public:
C_ATTR(bar, :Local)
void bar(Context *c);
};

and the URI for the request was http://.../foo/bar/bah, the string bah would be the first and only argument.

Arguments get automatically URI-unescaped for you.

Referenced by setArguments().

◆ base()

QString Cutelyst::Request::base ( ) const

Returns Contains the URI base. This will always have a trailing slash. Note that the URI scheme (e.g., http vs. https) must be determined through heuristics; depending on your server configuration, it may be incorrect. See secure() for more info.

If your application was queried with the URI http://localhost:3000/some/path then base is http://localhost:3000/.

◆ body()

QIODevice * Request::body ( ) const

Returns the message body of the request as passed by the Engine, this can even be a file if the Engine wants to.

Definition at line 181 of file request.cpp.

Referenced by Cutelyst::Context::Context().

◆ bodyData()

QVariant Cutelyst::Request::bodyData ( ) const

Returns a QVariant representation of POST/PUT body data that is not classic HTML form data, such as JSON, XML, etc. By default, Cutelyst will parse incoming data of the type 'application/json' and return access to that data via this method.

You may define addition data_handlers.

If the POST is malformed in some way (such as undefined or not content that matches the content-type) we return a null QVariant.

If the POSTed content type does not match an available data handler, this will also return a null QVariant.

Referenced by bodyJsonArray(), bodyJsonDocument(), and bodyJsonObject().

◆ bodyJsonArray()

QJsonArray Request::bodyJsonArray ( ) const

When request Content-Type is 'application/json' this will contain the parsed JSON representation array.

Definition at line 206 of file request.cpp.

References QJsonDocument::array(), bodyData(), and QVariant::toJsonDocument().

◆ bodyJsonDocument()

QJsonDocument Request::bodyJsonDocument ( ) const

When request Content-Type is 'application/json' this will contain the parsed JSON representation document.

Definition at line 196 of file request.cpp.

References bodyData(), and QVariant::toJsonDocument().

◆ bodyJsonObject()

QJsonObject Request::bodyJsonObject ( ) const

When request Content-Type is 'application/json' this will contain the parsed JSON representation object.

Definition at line 201 of file request.cpp.

References bodyData(), QJsonDocument::object(), and QVariant::toJsonDocument().

◆ bodyParam()

QString Cutelyst::Request::bodyParam ( const QString key,
const QString defaultValue = {} 
) const
inline

Convenience method for geting a single body value passing a key and an optional default value

Definition at line 541 of file request.h.

References bodyParameters(), and QMultiMap::value().

◆ bodyParameter()

QString Cutelyst::Request::bodyParameter ( const QString key,
const QString defaultValue = {} 
) const
inline

Convenience method for geting a single body value passing a key and an optional default value

Definition at line 531 of file request.h.

References bodyParameters(), and QMultiMap::value().

◆ bodyParameters() [1/2]

ParamsMultiMap Request::bodyParameters ( ) const

Returns a Map of body (POST/PUT) parameters when content type is application/x-www-form-urlencoded

Definition at line 216 of file request.cpp.

Referenced by bodyParam(), bodyParameter(), bodyParameters(), bodyParametersVariant(), bodyParams(), and Cutelyst::Validator::validate().

◆ bodyParameters() [2/2]

QStringList Request::bodyParameters ( const QString key) const

Convenience method for geting all body values passing a key

Note
Unlike QMap::values() this return values in insertion order.

Definition at line 225 of file request.cpp.

References bodyParameters(), QMultiMap::constEnd(), QMultiMap::constFind(), QMultiMap::const_iterator::key(), and QList::prepend().

◆ bodyParametersVariant()

QVariantMap Request::bodyParametersVariant ( ) const

Returns a QVariantMap of body (POST/PUT) parameters, this method is expensive as it creates the map each time it's called, cache it's result instead of calling multiple times

Definition at line 211 of file request.cpp.

References bodyParameters().

◆ bodyParams() [1/2]

ParamsMultiMap Cutelyst::Request::bodyParams ( ) const
inline

Short for bodyParameters()

◆ bodyParams() [2/2]

QStringList Cutelyst::Request::bodyParams ( const QString key) const
inline

Convenience method for geting all body values passing a key

Note
Unlike QMap::values() this return values in insertion order.

Definition at line 546 of file request.h.

References bodyParameters().

◆ captures()

QStringList Request::captures ( ) const
noexcept

Captures

Definition at line 163 of file request.cpp.

Referenced by Cutelyst::ActionChain::doExecute(), and setCaptures().

◆ contentEncoding()

QString Cutelyst::Request::contentEncoding ( ) const
inline

Returns the Content-Encoding header

◆ contentType()

QString Cutelyst::Request::contentType ( ) const
inline

Returns the Content-Type header

◆ cookie()

QString Request::cookie ( const QString name) const

Returns the cookie with the given name

Definition at line 274 of file request.cpp.

◆ cookies() [1/2]

QStringList Request::cookies ( const QString name) const

Returns a list of cookies that match with the given name

Note
Unlike QMap::values() this return values in insertion order.

Definition at line 284 of file request.cpp.

References QList::prepend().

◆ cookies() [2/2]

Cutelyst::ParamsMultiMap Request::cookies ( ) const

Returns all the cookies from the request

Definition at line 301 of file request.cpp.

◆ engine()

Engine * Request::engine ( ) const
noexcept

Returns the current Engine processing the requests.

Definition at line 437 of file request.cpp.

◆ header()

QString Cutelyst::Request::header ( const QString key) const
inline

Short for headers().header(key);

Definition at line 581 of file request.h.

References Cutelyst::Headers::header(), and headers().

◆ headers()

Headers Request::headers ( ) const
noexcept

Returns the HTTP request headers

Definition at line 310 of file request.cpp.

Referenced by header(), and Cutelyst::ViewJson::render().

◆ hostname()

QString Cutelyst::Request::hostname ( ) const

Returns the hostname of the client, or null if not found or an error has happened.

This functions makes blocking call to do a reverse DNS lookup if the engine didn't set the hostname.

◆ isDelete()

bool Request::isDelete ( ) const
noexcept

Returns true if the request method is DELETE.

Definition at line 352 of file request.cpp.

◆ isGet()

bool Request::isGet ( ) const
noexcept

Returns true if the request method is GET.

Definition at line 328 of file request.cpp.

◆ isHead()

bool Request::isHead ( ) const
noexcept

Returns true if the request method is HEAD.

Definition at line 334 of file request.cpp.

Referenced by Cutelyst::RenderView::doExecute().

◆ isPatch()

bool Request::isPatch ( ) const
noexcept

Returns true if the request method is PATCH.

Definition at line 346 of file request.cpp.

◆ isPost()

bool Request::isPost ( ) const
noexcept

Returns true if the request method is POST.

Definition at line 322 of file request.cpp.

◆ isPut()

bool Request::isPut ( ) const
noexcept

Returns true if the request method is PUT.

Definition at line 340 of file request.cpp.

◆ mangleParams()

ParamsMultiMap Request::mangleParams ( const ParamsMultiMap args,
bool  append = false 
) const

Returns a ParamsMultiMap of parameters stemming from the current request's params, plus the ones supplied. Keys for which no current param exists will be added, keys with null values will be removed and keys with existing params will be replaced. Note that you can supply a true value as the final argument to change behavior with regards to existing parameters, appending values rather than replacing them.

A quick example:

// URI query params foo=1
ParamsMultiMap params = request->mangleParams({ {"foo", "2"} });
// Result is query params of foo=2

versus append mode:

// URI query params foo=1
ParamsMultiMap params = request->mangleParams({ {"foo", "2"} }, true);
// Result is query params of foo=1&foo=2

This is the code behind uriWith().

Definition at line 406 of file request.cpp.

References args(), QList::constBegin(), QList::constEnd(), queryParams(), QMultiMap::replace(), and QMultiMap::unite().

Referenced by uriWith().

◆ match()

QString Cutelyst::Request::match ( ) const
noexcept

This contains the matching part of a Regex action. Otherwise it returns the same as 'action' (not a pointer but it's private name), except for default actions, which return an empty string.

Referenced by setMatch().

◆ method()

QString Cutelyst::Request::method ( ) const
noexcept

Returns the request method (GET, POST, HEAD, etc).

◆ path()

QString Cutelyst::Request::path ( ) const
noexcept

Returns the path, i.e. the part of the URI after base(), for the current request. for http://localhost/path/foo path will contain 'path/foo'

◆ port()

quint16 Cutelyst::Request::port ( ) const

Returns the originating port of the client

◆ protocol()

QString Cutelyst::Request::protocol ( ) const
noexcept

Returns the protocol (HTTP/1.0 or HTTP/1.1) used for the current request.

◆ queryKeywords()

QString Request::queryKeywords ( ) const

Contains the keywords portion of a query string, when no '=' signs are present.

  • http://localhost/path?some+keywords
    c->request()->queryKeywords() will contain 'some keywords'

Definition at line 238 of file request.cpp.

◆ queryParam()

QString Cutelyst::Request::queryParam ( const QString key,
const QString defaultValue = {} 
) const
inline

Convenience method for geting a single query value passing a key and an optional default value

Definition at line 561 of file request.h.

References queryParameters(), and QMultiMap::value().

Referenced by Cutelyst::StatusMessage::load().

◆ queryParameter()

QString Cutelyst::Request::queryParameter ( const QString key,
const QString defaultValue = {} 
) const
inline

Convenience method for geting a single query value passing a key and an optional default value

Definition at line 551 of file request.h.

References queryParameters(), and QMultiMap::value().

◆ queryParameters() [1/2]

ParamsMultiMap Request::queryParameters ( ) const

Returns a QMultiHash containing the query string parameters

Definition at line 252 of file request.cpp.

Referenced by queryParam(), queryParameter(), queryParameters(), queryParametersVariant(), queryParams(), and Cutelyst::Validator::validate().

◆ queryParameters() [2/2]

QStringList Request::queryParameters ( const QString key) const

Convenience method for geting all query values passing a key

Note
Unlike QMap::values() this return values in insertion order.

Definition at line 261 of file request.cpp.

References QMultiMap::constEnd(), QMultiMap::constFind(), QMultiMap::const_iterator::key(), QList::prepend(), and queryParameters().

◆ queryParametersVariant()

QVariantMap Request::queryParametersVariant ( ) const

Returns a QVariantMap of query string parameters, this method is expensive as it creates the map each time it's called, cache it's result instead of calling multiple times

Definition at line 247 of file request.cpp.

References queryParameters().

◆ queryParams() [1/2]

ParamsMultiMap Cutelyst::Request::queryParams ( ) const
inline

Short for queryParameters()

Referenced by mangleParams().

◆ queryParams() [2/2]

QStringList Cutelyst::Request::queryParams ( const QString key) const
inline

Convenience method for geting all query values passing a key

Note
Unlike QMap::values() this return values in insertion order.

Definition at line 566 of file request.h.

References queryParameters().

◆ referer()

QString Cutelyst::Request::referer ( ) const
inline

referer Shortcut for header("Referer")

◆ remoteUser()

QString Cutelyst::Request::remoteUser ( ) const
noexcept

Returns the value of the REMOTE_USER environment variable.

◆ secure()

bool Cutelyst::Request::secure ( ) const
noexcept

Returns true or false to indicate that a connection is secure (https), The reliability of it may depend on your server configuration, Cutelyst relies on the Engine to set this information which is used to build up uri().scheme(). The Engine itself might not be aware of a front HTTP server with https enabled.

◆ setArguments()

void Request::setArguments ( const QStringList arguments)

Defines the arguments of the request Useful for custom dispatchers and/or actions

Definition at line 157 of file request.cpp.

References arguments().

Referenced by Cutelyst::ActionChain::doExecute(), Cutelyst::DispatchTypePath::match(), and Cutelyst::DispatchTypeChained::match().

◆ setCaptures()

void Request::setCaptures ( const QStringList captures)

Defines the arguments of the request Useful for custom dispatchers and/or actions

Definition at line 169 of file request.cpp.

References captures().

Referenced by Cutelyst::DispatchTypeChained::match().

◆ setMatch()

void Request::setMatch ( const QString match)

Defines the matching part of the request Useful for custom dispatchers

Definition at line 145 of file request.cpp.

References match().

Referenced by Cutelyst::DispatchTypeChained::match(), and Cutelyst::DispatchTypePath::match().

◆ upload()

Upload * Cutelyst::Request::upload ( const QString name) const
inline

Returns the first Upload object for the given field, if no upload matches the field name this function returns 0.

Definition at line 596 of file request.h.

References uploadsMap().

◆ uploads() [1/2]

QVector< Upload * > Request::uploads ( ) const

Returns a vector containing uploads as provided by a multipart/form-data content type

Definition at line 377 of file request.cpp.

◆ uploads() [2/2]

Uploads Request::uploads ( const QString name) const

Returns all (if any) Upload objects for the given field.

Definition at line 395 of file request.cpp.

References QList::push_back(), and uploadsMap().

◆ uploadsMap()

QMultiMap< QString, Cutelyst::Upload * > Request::uploadsMap ( ) const

Returns a map containing uploads, where their key is the field name.

Definition at line 386 of file request.cpp.

Referenced by upload(), and uploads().

◆ uri()

QUrl Cutelyst::Request::uri ( ) const

Returns the uri as close as possible to what the user has in his browser url.

Referenced by uriWith().

◆ uriWith()

QUrl Request::uriWith ( const ParamsMultiMap args,
bool  append = false 
) const

Returns a rewritten URI object for the current request. Key/value pairs passed in will override existing parameters. You can remove an existing parameter by passing in an undef value. Unmodified pairs will be preserved.

You may also pass an optional second parameter that puts uriWith() into append mode:

req->uriWith({ {"key", "value"} }, true);

See mangleParams() for an explanation of this behavior.

Definition at line 422 of file request.cpp.

References QUrlQuery::addQueryItem(), args(), QMultiMap::constBegin(), QMultiMap::constEnd(), mangleParams(), QUrl::setQuery(), and uri().

◆ userAgent()

QString Cutelyst::Request::userAgent ( ) const
inline

Returns the user agent (browser) version string.

◆ webSocketClosed

void Cutelyst::Request::webSocketClosed ( quint16  closeCode,
const QString reason 
)
signal
Note
This signal is NOT emitted when explicit calling
See also
Response::webSocketClose(). If you need to track when the connection was closed, the proper way is to rely on Context::destroyed() signal.

◆ xhr()

bool Request::xhr ( ) const
noexcept

Returns true if the request's X-Requested-With header field is "XMLHttpRequest", indicating that the request was issued by a client library such as jQuery.

Definition at line 364 of file request.cpp.