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) |
成员类型文档
enum class QHttpServerResponder::StatusCode
HTTP状态码
| 常量 | 值 |
|---|---|
QHttpServerResponder::StatusCode::Continue | 100 |
QHttpServerResponder::StatusCode::SwitchingProtocols | 101 |
QHttpServerResponder::StatusCode::Processing | 102 |
QHttpServerResponder::StatusCode::Ok | 200 |
QHttpServerResponder::StatusCode::Created | 201 |
QHttpServerResponder::StatusCode::Accepted | 202 |
QHttpServerResponder::StatusCode::NonAuthoritativeInformation | 203 |
QHttpServerResponder::StatusCode::NoContent | 204 |
QHttpServerResponder::StatusCode::ResetContent | 205 |
QHttpServerResponder::StatusCode::PartialContent | 206 |
QHttpServerResponder::StatusCode::MultiStatus | 207 |
QHttpServerResponder::StatusCode::AlreadyReported | 208 |
QHttpServerResponder::StatusCode::IMUsed | 226 |
QHttpServerResponder::StatusCode::MultipleChoices | 300 |
QHttpServerResponder::StatusCode::MovedPermanently | 301 |
QHttpServerResponder::StatusCode::Found | 302 |
QHttpServerResponder::StatusCode::SeeOther | 303 |
QHttpServerResponder::StatusCode::NotModified | 304 |
QHttpServerResponder::StatusCode::UseProxy | 305 |
QHttpServerResponder::StatusCode::TemporaryRedirect | 307 |
QHttpServerResponder::StatusCode::PermanentRedirect | 308 |
QHttpServerResponder::StatusCode::BadRequest | 400 |
QHttpServerResponder::StatusCode::Unauthorized | 401 |
QHttpServerResponder::StatusCode::PaymentRequired | 402 |
QHttpServerResponder::StatusCode::Forbidden | 403 |
QHttpServerResponder::StatusCode::NotFound | 404 |
QHttpServerResponder::StatusCode::MethodNotAllowed | 405 |
QHttpServerResponder::StatusCode::NotAcceptable | 406 |
QHttpServerResponder::StatusCode::ProxyAuthenticationRequired | 407 |
QHttpServerResponder::StatusCode::RequestTimeout | 408 |
QHttpServerResponder::StatusCode::Conflict | 409 |
QHttpServerResponder::StatusCode::Gone | 410 |
QHttpServerResponder::StatusCode::LengthRequired | 411 |
QHttpServerResponder::StatusCode::PreconditionFailed | 412 |
QHttpServerResponder::StatusCode::PayloadTooLarge | 413 |
QHttpServerResponder::StatusCode::UriTooLong | 414 |
QHttpServerResponder::StatusCode::UnsupportedMediaType | 415 |
QHttpServerResponder::StatusCode::RequestRangeNotSatisfiable | 416 |
QHttpServerResponder::StatusCode::ExpectationFailed | 417 |
QHttpServerResponder::StatusCode::ImATeapot | 418 |
QHttpServerResponder::StatusCode::MisdirectedRequest | 421 |
QHttpServerResponder::StatusCode::UnprocessableEntity | 422 |
QHttpServerResponder::StatusCode::Locked | 423 |
QHttpServerResponder::StatusCode::FailedDependency | 424 |
QHttpServerResponder::StatusCode::UpgradeRequired | 426 |
QHttpServerResponder::StatusCode::PreconditionRequired | 428 |
QHttpServerResponder::StatusCode::TooManyRequests | 429 |
QHttpServerResponder::StatusCode::RequestHeaderFieldsTooLarge | 431 |
QHttpServerResponder::StatusCode::UnavailableForLegalReasons | 451 |
QHttpServerResponder::StatusCode::InternalServerError | 500 |
QHttpServerResponder::StatusCode::NotImplemented | 501 |
QHttpServerResponder::StatusCode::BadGateway | 502 |
QHttpServerResponder::StatusCode::ServiceUnavailable | 503 |
QHttpServerResponder::StatusCode::GatewayTimeout | 504 |
QHttpServerResponder::StatusCode::HttpVersionNotSupported | 505 |
QHttpServerResponder::StatusCode::VariantAlsoNegotiates | 506 |
QHttpServerResponder::StatusCode::InsufficientStorage | 507 |
QHttpServerResponder::StatusCode::LoopDetected | 508 |
QHttpServerResponder::StatusCode::NotExtended | 510 |
QHttpServerResponder::StatusCode::NetworkAuthenticationRequired | 511 |
QHttpServerResponder::StatusCode::NetworkConnectTimeoutError | 599 |
成员函数文档
[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.