QRestReply Class

QRestReply はQNetworkReply の便利なラッパーです。詳細...

Header: #include <QRestReply>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
Since: Qt 6.7

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

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()も参照してください

メンバ関数ドキュメント

[explicit] QRestReply::QRestReply(QNetworkReply *reply)

QRestReply を作成し、ラップされたQNetworkReplyreply に初期化します。

[noexcept] QRestReply::QRestReply(QRestReply &&other)

other からリプライを移動します。

注: 移動元のオブジェクト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)。HTTPステータス情報を取得するには、httpStatus() またはisHttpStatusSuccess() を使用します。

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)

move-代入other 、この応答への参照を返す。

注意: 移動元のオブジェクトother は、部分的に形成された状態に置かれる。この状態では、有効な操作は破棄と新しい値の割り当てのみである。

関連する非会員

QDebug operator<<(QDebug debug, const QRestReply &reply)

デバッグのために、replydebug オブジェクトに書き込む。

デバッグテクニックも参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。