28class CUTELYST_EXPORT
Response final :
public QIODevice
36 SwitchingProtocols = 101,
40 NonAuthoritativeInformation = 203,
45 MultipleChoices = 300,
46 MovedPermanently = 301,
51 TemporaryRedirect = 307,
52 PermanentRedirect = 308,
55 PaymentRequired = 402,
58 MethodNotAllowed = 405,
60 ProxyAuthenticationRequired = 407,
65 PreconditionFailed = 412,
66 RequestEntityTooLarge = 413,
67 RequestURITooLong = 414,
68 UnsupportedMediaType = 415,
69 RequestedRangeNotSatisfiable = 416,
70 ExpectationFailed = 417,
71 InternalServerError = 500,
74 ServiceUnavailable = 503,
76 HTTPVersionNotSupported = 505,
77 BandwidthLimitExceeded = 509
83 CloseCodeNormal = 1000,
84 CloseCodeGoingAway = 1001,
85 CloseCodeProtocolError = 1002,
86 CloseCodeDatatypeNotSupported = 1003,
87 CloseCodeReserved1004 = 1004,
88 CloseCodeMissingStatusCode = 1005,
89 CloseCodeAbnormalDisconnection = 1006,
90 CloseCodeWrongDatatype = 1007,
91 CloseCodePolicyViolated = 1008,
92 CloseCodeTooMuchData = 1009,
93 CloseCodeMissingExtension = 1010,
94 CloseCodeBadOperation = 1011,
95 CloseCodeTlsHandshakeFailed = 1015
107 quint16 status() const noexcept;
112 void setStatus(quint16 status) noexcept;
119 bool hasBody() const noexcept;
127 [[nodiscard]] QByteArray &body();
132 QIODevice *bodyDevice() const noexcept;
140 void setBody(QIODevice *body);
146 void setBody(const QByteArray &body);
152 inline
void setBody(const QString &body);
158 inline
void setBody(QStringView body);
164 void setCborBody(const QByteArray &cbor);
170 void setCborValueBody(const QCborValue &value);
176 inline
void setJsonBody(QStringView json);
182 void setJsonBody(const QByteArray &json);
189 void setJsonObjectBody(const QJsonObject &obj);
196 void setJsonArrayBody(const QJsonArray &array);
203 QByteArray contentEncoding() const noexcept;
210 void setContentEncoding(const QByteArray &encoding);
217 qint64 contentLength() const;
224 void setContentLength(qint64 length);
231 QByteArray contentType() const;
244 QByteArray contentTypeCharset()
const;
250 QVariant cookie(
const QByteArray &name)
const;
255 QList<QNetworkCookie> cookies()
const;
261 void setCookie(
const QNetworkCookie &cookie);
267 void setCookies(
const QList<QNetworkCookie> &cookies);
273 int removeCookies(
const QByteArray &name);
287 void redirect(
const QUrl &url, quint16 status = Found);
331 QByteArray
header(const QByteArray &field) const noexcept;
337 void setHeader(const QByteArray &key, const QByteArray &value);
357 qint64
size() const noexcept override;
370 const QByteArray &origin = {},
371 const QByteArray &protocol = {});
400 bool webSocketClose(quint16 code = Response::CloseCodeNormal,
const QString &reason = {});
415 virtual qint64 writeData(
const char *data, qint64 len)
override;
420 virtual qint64 readData(
char *data, qint64 maxlen)
override;
422 ResponsePrivate *d_ptr;
425 friend class EngineConnection;
427 friend class ContextPrivate;