QRestReply Class

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(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)

moveは、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)

デバッグ用にdebug オブジェクトにreply を書き込む。

デバッグ技法も参照のこと

© 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.