QRestReply 类

QRestReply 是对 QNetworkReply 的便利包装。 更多...

头文件 #include <QRestReply>
CMakefind_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmakeQT += network
Qt 6.7
状态初步

此类正在开发中,可能会有变化。

注意: 此类中所有函数都是 可重入的

公共函数

QRestReply(QNetworkReply *reply)
QRestReply(QRestReply &&other)
~QRestReply()
QNetworkReply::NetworkErrorerror() const
QStringerrorString() const
boolhasError() const
inthttpStatus() const
boolisHttpStatusSuccess() const
boolisSuccess() const
QNetworkReply *networkReply() const
QByteArrayreadBody()
std::optional<QJsonDocument>readJson(QJsonParseError *error = nullptr)
QStringreadText()
QRestReply &operator=(QRestReply &&other)
QDebugoperator<<(QDebug debug, const QRestReply &reply)

详细描述

QRestReply 将一个 QNetworkReply 包装起来,并提供数据和处理状态时的便利方法。这些方法为典型的 RESTful 客户端应用程序提供了便利。

QRestReply 不拥有包装的 QNetworkReply,其生命周期和拥有权遵守 QNetworkAccessManager 文档的规定。

QRestReply 对象不可复制,但可移动。

另请参阅:QRestAccessManagerQNetworkReplyQNetworkAccessManager 以及 QNetworkAccessManager::setAutoDeleteReplies

成员函数文档

[显式] QRestReply::QRestReply(QNetworkReply *reply)

创建一个QRestReply并初始化包装的QNetworkReplyreply

[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以区分这种情况和实际错误。

另请参阅 readBody()和readText()。

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公司有限公司的商标。所有其他商标均为各自所有者的财产。