QRestReply 类
QRestReply 是对 QNetworkReply 的便利包装。 更多...
头文件 | #include <QRestReply> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake | QT += network |
自 | Qt 6.7 |
状态 | 初步 |
此类正在开发中,可能会有变化。
- 包括继承成员在内的所有成员列表
- QRestReply 是 网络编程 API 的一部分。
注意: 此类中所有函数都是 可重入的。
公共函数
QRestReply(QNetworkReply *reply) | |
QRestReply(QRestReply &&other) | |
~QRestReply() | |
QNetworkReply::NetworkError | error() const |
QString | errorString() const |
bool | hasError() const |
int | httpStatus() const |
bool | isHttpStatusSuccess() const |
bool | isSuccess() const |
QNetworkReply * | networkReply() const |
QByteArray | readBody() |
std::optional<QJsonDocument> | readJson(QJsonParseError *error = nullptr) |
QString | readText() |
QRestReply & | operator=(QRestReply &&other) |
相关非成员
QDebug | operator<<(QDebug debug, const QRestReply &reply) |
详细描述
QRestReply 将一个 QNetworkReply 包装起来,并提供数据和处理状态时的便利方法。这些方法为典型的 RESTful 客户端应用程序提供了便利。
QRestReply 不拥有包装的 QNetworkReply,其生命周期和拥有权遵守 QNetworkAccessManager 文档的规定。
QRestReply 对象不可复制,但可移动。
另请参阅:QRestAccessManager、QNetworkReply、QNetworkAccessManager 以及 QNetworkAccessManager::setAutoDeleteReplies。
成员函数文档
[显式]
QRestReply::QRestReply(QNetworkReply *reply)
创建一个QRestReply并初始化包装的QNetworkReply为reply。
[noexcept]
QRestReply::QRestReply(QRestReply &&other)
从other移动构造reply。
注意: 被移动的对象other处于部分成形状态,此时的有效操作仅为销毁和分配新的值。
[noexcept]
QRestReply::~QRestReply()
销毁此QRestReply对象。
QNetworkReply::NetworkError QRestReply::error() const
返回最后的错误,如果有。错误包括网络和协议错误,但不包括服务器成功以HTTP状态响应的情况。
另请参阅 httpStatus()、isSuccess()、hasError()和errorString()。
QString QRestReply::errorString() const
返回最后网络错误的文本描述。
另请参阅 httpStatus()、isSuccess()、hasError()和error()。
bool QRestReply::hasError() const
返回是否发生错误。这包括网络和协议错误,但不包括服务器成功以HTTP错误状态响应的情况(例如500 Internal Server Error
)。使用httpStatus()或isHttpStatusSuccess()来获取HTTP状态信息。
另请参阅 httpStatus()、isSuccess()、error()和errorString()。
int QRestReply::httpStatus() const
返回服务器响应中的HTTP状态。如果不可用(尚未接收到状态行),值是0。
注意: HTTP状态按接收到的HTTP响应报告。接收到状态之后可能会发生error,例如在接收长时间响应时网络断开。这些可能的后续错误不由报告的HTTP状态表示。
另请参阅 isSuccess()、hasError()和error()。
bool QRestReply::isHttpStatusSuccess() const
返回HTTP状态是否在200..299之间。
另请参阅 isSuccess()、httpStatus()、hasError()和error()。
bool QRestReply::isSuccess() const
返回HTTP状态码是否在200..299之间,并且在接收响应的过程中没有发生进一步错误(例如,接收主体数据时的突然断开)。此函数是一种方便的方式来检查响应是否被认为成功。
另请参阅 httpStatus(),hasError(),和error()。
QNetworkReply *QRestReply::networkReply() const
返回一个指向由此对象封装的底层数据QNetworkReply的指针。
QByteArray QRestReply::readBody()
以QByteArray 形式返回接收到的数据。
调用此函数会消耗到目前为止接收到的数据,并且在此之后进一步的请求将返回空数据,直到有新的数据接收。
另请参阅 readJson(),readText(),QNetworkReply::bytesAvailable()和QNetworkReply::readyRead()。
std::optional<QJsonDocument> QRestReply::readJson(QJsonParseError *error = nullptr)
将接收到的数据返回为QJsonDocument。
返回值封装在std::optional
中。如果从接收到的数据中转换失败(数据为空或JSON解析错误),则返回std::nullopt
,并且error将被填充详细信息。
调用此函数会消耗接收到的数据,并且在此之后进一步的请求将返回空数据。
如果没有完成回复,此函数返回std::nullopt
并不会消耗任何数据。如果传递error,它将被设置为QJsonParseError::NoError以区分这种情况和实际错误。
QString QRestReply::readText()
以QString 形式返回接收到的数据。
接收到的数据被解码成QString (UTF-16)。如果可用,解码使用Content-Type头部的charset参数来确定源编码。如果编码信息不可用或不被QStringConverter支持,则默认使用UTF-8。
调用此函数会消耗到目前为止接收到的数据。如果没有新的数据可用,或者解码不被QStringConverter支持,或者解码出现错误(例如无效字符),则返回默认构造的值。
另请参阅 readJson(),readBody(),和QNetworkReply::readyRead()。
[noexcept]
QRestReply &QRestReply::operator=(QRestReply &&other)
移动赋值other并返回对此次回复的引用。
注意: 被移动的对象other处于部分成形状态,此时的有效操作仅为销毁和分配新的值。
相关非成员
QDebug operator << (QDebug debug, const QRestReply & reply)
将reply写入debug对象中,用于调试目的。
另请参阅调试技术。
© 2024 Qt公司有限公司。本文件中包含的文档贡献归其各自所有者所有。提供的文档根据GNU自由文档许可证版本1.3的条款许可,该许可证由自由软件基金会发布。Qt及其相关标志是芬兰和/或其他国家Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。