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) |
成员类型文档
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)
移动-创建一个 QHttpServerResponder 实例,使其指向other 所指向的同一对象。
[noexcept]
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 中引入。
另请参阅 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)
使用writeBeginChunked
中公布的trailers 将data 写回客户端。
该函数在 Qt 6.8 中引入。
另请参阅 writeBeginChunked 和writeChunk 。
© 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.