本页内容

QHttpServerResponder Class

用于从 HTTP 服务器发送响应的 API。更多内容...

头文件: #include <QHttpServerResponder>
CMake: find_package(Qt6 REQUIRED COMPONENTS HttpServer)
target_link_libraries(mytarget PRIVATE Qt6::HttpServer)
qmake: QT += httpserver
自: Qt 6.4

公共类型

enum class StatusCode { Continue, SwitchingProtocols, Processing, Ok, Created, …, NetworkConnectTimeoutError }

公共函数

QHttpServerResponder(QHttpServerResponder &&other)
~QHttpServerResponder()
(since 6.11) bool isResponseCanceled() const
(since 6.5) void sendResponse(const QHttpServerResponse &response)
(since 6.8) void swap(QHttpServerResponder &other)
void write(QHttpServerResponder::StatusCode status = StatusCode::Ok)
void write(const QHttpHeaders &headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void write(const QJsonDocument &document, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void write(QIODevice *data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void write(QIODevice *data, const QHttpHeaders &headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void write(const QByteArray &data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void write(const QByteArray &data, const QHttpHeaders &headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void write(const QJsonDocument &document, const QHttpHeaders &headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
(since 6.8) void writeBeginChunked(const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)
(since 6.8) void writeBeginChunked(const QHttpHeaders &headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
(since 6.8) void writeBeginChunked(const QHttpHeaders &headers, QList<QHttpHeaders::WellKnownHeader> trailers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
(since 6.8) void writeChunk(const QByteArray &data)
(since 6.8) void writeEndChunked(const QByteArray &data)
(since 6.8) void writeEndChunked(const QByteArray &data, const QHttpHeaders &trailers)

详细说明

提供用于向 HTTP 客户端写回数据的函数,并具有用于序列化 JSON 对象的重载。它还支持写入 HTTP 头和状态码。

成员类型文档

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

成员函数文档

[noexcept] QHttpServerResponder::QHttpServerResponder(QHttpServerResponder &&other)

通过“move”构造一个 QHttpServerResponder 实例,使其指向与other 所指向的同一对象。

[noexcept] QHttpServerResponder::~QHttpServerResponder()

销毁一个QHttpServerResponder 。

[since 6.11] bool QHttpServerResponder::isResponseCanceled() const

如果客户端已取消响应,则返回 true。用于在响应被取消时,使处理程序能够提前退出。

该函数在 Qt 6.11 中引入。

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

向客户端发送一个 HTTPresponse 请求。

该函数自 Qt 6.5 起引入。

[noexcept, since 6.8] void QHttpServerResponder::swap(QHttpServerResponder &other)

将QHttpServerResponder other 替换为QHttpServerResponder 。此操作速度极快,且绝不会失败。

该函数在 Qt 6.8 中引入。

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

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

注意:此函数将 HTTP Content-Type 头设置为"application/x-empty" 。

void QHttpServerResponder::write(const QHttpHeaders &headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

使用 HTTP 状态码status 和 HTTP 头部headers 响应请求。

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

使用 HTTP 状态码status 以及 JSON 文档document 响应请求。

注意:此函数将 HTTP Content-Type 头设置为"application/json" 。

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(QIODevice *data, const QHttpHeaders &headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

使用 HTTP 状态码status 和 HTTP 头部headers 响应请求。I/O 设备data 提供响应正文。如果data 是顺序设备,则消息正文将分块发送;否则,该函数会假设所有内容均已就绪并一次性发送全部内容,但读取操作仍按分块方式进行。

注意:此 函数将获得data 的所有权。

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

使用 HTTP 状态码status 、MIME 类型mimeType 和正文data 响应请求。

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

使用 HTTP 状态码status 、HTTP 头headers 和正文data 响应请求。

注意:此函数会设置 HTTP Content-Length 头。

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

使用 HTTP 状态码status 、JSON 文档document 以及 HTTP 头headers 响应请求。

注意:此函数将 HTTP Content-Type 标头设置为"application/json" 。

[since 6.8] void QHttpServerResponder::writeBeginChunked(const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)

开始发送MIME类型为mimeType 且状态码为status 的数据块。此调用之后,必须跟任意次数的writeChunk 调用,以及一次writeEndChunked 调用。

该函数于 Qt 6.8 中引入。

另请参阅 writeChunk 和writeEndChunked 。

[since 6.8] void QHttpServerResponder::writeBeginChunked(const QHttpHeaders &headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

使用headers 并设置状态码status 开始发送数据块。此调用之后,必须跟上任意次数的writeChunk 调用,以及一次writeEndChunked 调用。

该函数在 Qt 6.8 中引入。

另请参阅 writeChunk 和writeEndChunked 。

[since 6.8] void QHttpServerResponder::writeBeginChunked(const QHttpHeaders &headers, QList<QHttpHeaders::WellKnownHeader> trailers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

使用headers 并传入给定的状态码status 开始发送数据块。此调用之后,必须跟随任意次数的writeChunk 调用,以及一次writeEndChunked 调用,其中传入的尾部信息与trailers 中给定的相同。

该函数于 Qt 6.8 中引入。

另请参阅 writeChunk 和writeEndChunked 。

[since 6.8] void QHttpServerResponder::writeChunk(const QByteArray &data)

将data 写回客户端。当有数据可写时调用此函数。该函数可被多次调用,但在调用此函数之前必须先调用writeBeginChunked ,之后必须调用writeEndChunked 。

该函数于 Qt 6.8 中引入。

另请参阅 writeBeginChunked 和writeEndChunked 。

[since 6.8] void QHttpServerResponder::writeEndChunked(const QByteArray &data)

将data 写回客户端。必须在调用writeBeginChunked 之后进行。

该函数在 Qt 6.8 中引入。

另请参阅 writeBeginChunked 和writeChunk 。

[since 6.8] void QHttpServerResponder::writeEndChunked(const QByteArray &data, const QHttpHeaders &trailers)

将data 写回客户端,并使用writeBeginChunked 中宣布的trailers 。

该函数在 Qt 6.8 中引入。

另请参阅 writeBeginChunked 和writeChunk 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.