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.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)

移动-创建一个 QHttpServerResponder 实例,使其指向other 所指向的同一对象。

[noexcept] QHttpServerResponder::~QHttpServerResponder()

销毁QHttpServerResponder.

[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 中引入。

另请参阅 writeChunkwriteEndChunked

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

使用headers 和状态代码status 开始发送数据块。该调用之后必须重复调用任意次数的writeChunk 和单次调用writeEndChunked

该函数在 Qt 6.8 中引入。

另请参见 writeChunkwriteEndChunked

[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 中引入。

另请参见 writeChunkwriteEndChunked

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

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

此函数在 Qt 6.8 中引入。

另请参阅 writeBeginChunkedwriteEndChunked

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

data 写回客户。之前必须调用writeBeginChunked

该函数在 Qt 6.8 中引入。

另请参阅 writeBeginChunkedwriteChunk

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

使用writeBeginChunked 中公布的trailersdata 写回客户端。

该函数在 Qt 6.8 中引入。

另请参阅 writeBeginChunkedwriteChunk

© 2025 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.