QHttpServerResponder 类

发送 HTTP 服务器响应的 API。 更多...

头文件 #include <QHttpServerResponder>
CMakefind_package(Qt6 REQUIRED COMPONENTS HttpServer)
target_link_libraries(mytarget PRIVATE Qt6::HttpServer)
qmakeQT += httpserver
Qt 6.4
状态技术预览

公共类型

HeaderList
enum classStatusCode { Continue, SwitchingProtocols, Processing, Ok, Created, …, NetworkConnectTimeoutError }

公共函数

QHttpServerResponder(QHttpServerResponder &&other)
~QHttpServerResponder()
(自 6.5) voidsendResponse(const QHttpServerResponse &response)
voidwrite(QIODevice *data, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
voidwrite(QIODevice *data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)
voidwrite(const QJsonDocument &document, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
voidwrite(const QJsonDocument &document, QHttpServerResponder::StatusCode status = StatusCode::Ok)
voidwrite(const QByteArray &data, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
voidwrite(const QByteArray &data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)
voidwrite(QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
voidwrite(QHttpServerResponder::StatusCode status = StatusCode::Ok)
voidwriteBody(const char *body, qint64 size)
voidwriteBody(const char *body)
voidwriteBody(const QByteArray &body)
voidwriteHeader(const QByteArray &header, const QByteArray &value)
voidwriteHeaders(QHttpServerResponder::HeaderList headers)
voidwriteStatusLine(QHttpServerResponder::StatusCode status = StatusCode::Ok)

详细描述

提供用于将 JSON 对象序列化并以函数重载的形式使用,写入 HTTP 客户端的功能。它还支持写入 HTTP 头部和状态码。

成员类型文档

[别名] QHttpServerResponder::HeaderList

用于 std::initializer_list< std::pair > 的类型别名

enum class QHttpServerResponder::StatusCode

HTTP 状态码

常量
QHttpServerResponder::StatusCode::Continue100
QHttpServerResponder::StatusCode::SwitchingProtocols101
QHttpServerResponder::StatusCode::Processing102
QHttpServerResponder::StatusCode::Ok200
QHttpServerResponder::StatusCode::Created201
QHttpServerResponder::StatusCode::Accepted202
QHttpServerResponder::StatusCode::NonAuthoritativeInformation203
QHttpServerResponder::StatusCode::NoContent204
QHttpServerResponder::StatusCode::ResetContent205
QHttpServerResponder::StatusCode::PartialContent206
QHttpServerResponder::StatusCode::MultiStatus207
QHttpServerResponder::StatusCode::AlreadyReported208
QHttpServerResponder::StatusCode::IMUsed226
QHttpServerResponder::StatusCode::MultipleChoices300
QHttpServerResponder::StatusCode::MovedPermanently301
QHttpServerResponder::StatusCode::Found302
QHttpServerResponder::StatusCode::SeeOther303
QHttpServerResponder::StatusCode::NotModified304
QHttpServerResponder::StatusCode::UseProxy305
QHttpServerResponder::StatusCode::TemporaryRedirect307
QHttpServerResponder::StatusCode::PermanentRedirect308
QHttpServerResponder::StatusCode::BadRequest400
QHttpServerResponder::StatusCode::Unauthorized401
QHttpServerResponder::StatusCode::PaymentRequired402
QHttpServerResponder::StatusCode::Forbidden403
QHttpServerResponder::StatusCode::NotFound404
QHttpServerResponder::StatusCode::MethodNotAllowed405
QHttpServerResponder::StatusCode::NotAcceptable406
QHttpServerResponder::StatusCode::ProxyAuthenticationRequired407
QHttpServerResponder::StatusCode::RequestTimeout408
QHttpServerResponder::StatusCode::Conflict409
QHttpServerResponder::StatusCode::Gone410
QHttpServerResponder::StatusCode::LengthRequired411
QHttpServerResponder::StatusCode::PreconditionFailed412
QHttpServerResponder::StatusCode::PayloadTooLarge413
QHttpServerResponder::StatusCode::UriTooLong414
QHttpServerResponder::StatusCode::UnsupportedMediaType415
QHttpServerResponder::StatusCode::RequestRangeNotSatisfiable416
QHttpServerResponder::StatusCode::ExpectationFailed417
QHttpServerResponder::StatusCode::ImATeapot418
QHttpServerResponder::StatusCode::MisdirectedRequest421
QHttpServerResponder::StatusCode::UnprocessableEntity422
QHttpServerResponder::StatusCode::Locked423
QHttpServerResponder::StatusCode::FailedDependency424
QHttpServerResponder::StatusCode::UpgradeRequired426
QHttpServerResponder::StatusCode::PreconditionRequired428
QHttpServerResponder::StatusCode::TooManyRequests429
QHttpServerResponder::StatusCode::RequestHeaderFieldsTooLarge431
QHttpServerResponder::StatusCode::UnavailableForLegalReasons451
QHttpServerResponder::StatusCode::InternalServerError500
QHttpServerResponder::StatusCode::NotImplemented501
QHttpServerResponder::StatusCode::BadGateway502
QHttpServerResponder::StatusCode::ServiceUnavailable503
QHttpServerResponder::StatusCode::GatewayTimeout504
QHttpServerResponder::StatusCode::HttpVersionNotSupported505
QHttpServerResponder::StatusCode::VariantAlsoNegotiates506
QHttpServerResponder::StatusCode::InsufficientStorage507
QHttpServerResponder::StatusCode::LoopDetected508
QHttpServerResponder::StatusCode::NotExtended510
QHttpServerResponder::StatusCode::NetworkAuthenticationRequired511
QHttpServerResponder::StatusCode::NetworkConnectTimeoutError599

成员函数文档

QHttpServerResponder::QHttpServerResponder(QHttpServerResponder &&other)

移动构造 QHttpServerResponder 实例,使其指向由 other 指向的对象。

[noexcept] QHttpServerResponder::~QHttpServerResponder()

销毁一个 QHttpServerResponder

[since 6.5] void QHttpServerResponder::sendResponse(const QHttpServerResponse &response)

向客户端发送一个 HTTP response

此函数自 Qt 6.5 起引入。

void QHttpServerResponder::write(QIODevice *data, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

响应请求数据,返回HTTP状态码 status 和HTTP头部 headers。I/O设备 data 提供响应体。如果 data 是顺序的,则消息体以块的形式发送:否则,函数假设所有内容都可用,并一次性发送所有内容,但以块读取。

注意:此函数将 data 的所有权交给该函数。

void QHttpServerResponder::write(QIODevice *data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)

响应请求数据,返回HTTP状态码 status 和MIME类型 mimeType。I/O设备 data 提供响应体。如果 data 是顺序的,则消息体以块的形式发送:否则,函数假设所有内容都可用,并一次性发送所有内容,但以块读取。

注意:此函数将 data 的所有权交给该函数。

void QHttpServerResponder::write(const QJsonDocument &document, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

响应请求数据,返回HTTP状态码 status、JSON文档 document 和HTTP头部 headers

注意:此函数将HTTP内容类型头部设置为 "application/json"。

void QHttpServerResponder::write(const QJsonDocument &document, QHttpServerResponder::StatusCode status = StatusCode::Ok)

响应请求数据,返回HTTP状态码 status 和JSON文档 document

注意:此函数将HTTP内容类型头部设置为 "application/json"。

void QHttpServerResponder::write(const QByteArray &data, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

响应请求数据,返回HTTP状态码 status、HTTP头部 headers 和正文 data

注意:此函数将HTTP内容长度头部设置为。

void QHttpServerResponder::write(const QByteArray &data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)

响应请求数据,返回HTTP状态码 status、MIME类型 mimeType 和正文 data

void QHttpServerResponder::write(QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

响应请求数据,返回HTTP状态码 status 和HTTP头部 headers

void QHttpServerResponder::write(QHttpServerResponder::StatusCode status = StatusCode::Ok)

使用HTTP状态码 status 响应请求。

注意:此函数将HTTP内容类型头设置为 "application/x-empty"。

void QHttpServerResponder::writeBody(const char *body, qint64 size)

此函数将大小为 size 的HTTP正文 body 写入。

void QHttpServerResponder::writeBody(const char *body)

此函数写入HTTP正文 body

void QHttpServerResponder::writeBody(const QByteArray &body)

此函数写入HTTP正文 body

void QHttpServerResponder::writeHeader(const QByteArray &header, const QByteArray &value)

此函数使用 value 写入HTTP头部 header

void QHttpServerResponder::writeHeaders(QHttpServerResponder::HeaderList headers)

此函数写入HTTP头部 headers

void QHttpServerResponder::writeStatusLine(QHttpServerResponder::StatusCode status = StatusCode::Ok)

此函数写入带有HTTP状态码 status 的HTTP状态行。

© 2024 The Qt Company Ltd。本文档中的贡献属于其各自的版权所有者。本文档是根据自由软件基金会发布的 GNU自由文档许可证第1.3版 的条款提供的。Qt及其相关标志是The Qt Company Ltd在芬兰和/或其他国家和地区的商标。所有其他商标均属于其各自的版权所有者。