summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
Diffstat (limited to 'src/network')
-rw-r--r--src/network/access/qrestreply.cpp54
-rw-r--r--src/network/access/qrestreply.h3
-rw-r--r--src/network/access/qrestreply_p.h1
-rw-r--r--src/network/doc/snippets/code/src_network_access_qrestaccessmanager.cpp4
4 files changed, 13 insertions, 49 deletions
diff --git a/src/network/access/qrestreply.cpp b/src/network/access/qrestreply.cpp
index a7366607869..8c575733dc5 100644
--- a/src/network/access/qrestreply.cpp
+++ b/src/network/access/qrestreply.cpp
@@ -153,8 +153,7 @@ void QRestReply::abort()
}
/*!
- Returns the received data as a QJsonObject. Requires the reply to be
- finished.
+ Returns the received data as a QJsonDocument.
The returned value is wrapped in \c std::optional. If the conversion
from the received data fails (empty data or JSON parsing error),
@@ -166,44 +165,24 @@ void QRestReply::abort()
This function returns \c {std::nullopt} and will not consume
any data if the reply is not finished.
- \sa jsonArray(), body(), text(), finished(), isFinished()
+ \sa body(), text(), finished(), isFinished()
*/
-std::optional<QJsonObject> QRestReply::json()
+std::optional<QJsonDocument> QRestReply::json()
{
Q_D(QRestReply);
if (!isFinished()) {
qCWarning(lcQrest, "Attempt to read json() of an unfinished reply, ignoring.");
return std::nullopt;
}
- const QJsonDocument json = d->replyDataToJson();
- return json.isObject() ? std::optional{json.object()} : std::nullopt;
-}
-
-/*!
- Returns the received data as a QJsonArray. Requires the reply to be
- finished.
-
- The returned value is wrapped in \c std::optional. If the conversion
- from the received data fails (empty data or JSON parsing error),
- \c std::nullopt is returned.
-
- Calling this function consumes the received data, and any further calls
- to get response data will return empty.
-
- This function returns \c {std::nullopt} and will not consume
- any data if the reply is not finished.
-
- \sa json(), body(), text(), finished(), isFinished()
-*/
-std::optional<QJsonArray> QRestReply::jsonArray()
-{
- Q_D(QRestReply);
- if (!isFinished()) {
- qCWarning(lcQrest, "Attempt to read jsonArray() of an unfinished reply, ignoring.");
+ QJsonParseError parseError;
+ const QByteArray data = d->networkReply->readAll();
+ const QJsonDocument doc = QJsonDocument::fromJson(data, &parseError);
+ if (parseError.error != QJsonParseError::NoError) {
+ qCDebug(lcQrest) << "Response data not JSON:" << parseError.errorString()
+ << "at" << parseError.offset << data;
return std::nullopt;
}
- const QJsonDocument json = d->replyDataToJson();
- return json.isArray() ? std::optional{json.array()} : std::nullopt;
+ return doc;
}
/*!
@@ -472,19 +451,6 @@ bool QRestReplyPrivate::hasNonHttpError() const
return networkReply->error() != QNetworkReply::NoError;
}
-QJsonDocument QRestReplyPrivate::replyDataToJson()
-{
- QJsonParseError parseError;
- const QByteArray data = networkReply->readAll();
- const QJsonDocument json = QJsonDocument::fromJson(data, &parseError);
-
- if (parseError.error != QJsonParseError::NoError) {
- qCDebug(lcQrest) << "Response data not JSON:" << parseError.errorString()
- << "at" << parseError.offset << data;
- }
- return json;
-}
-
QT_END_NAMESPACE
#include "moc_qrestreply.cpp"
diff --git a/src/network/access/qrestreply.h b/src/network/access/qrestreply.h
index e022a7b853f..02b6d1196d2 100644
--- a/src/network/access/qrestreply.h
+++ b/src/network/access/qrestreply.h
@@ -19,8 +19,7 @@ public:
QNetworkReply *networkReply() const;
- std::optional<QJsonObject> json();
- std::optional<QJsonArray> jsonArray();
+ std::optional<QJsonDocument> json();
QByteArray body();
QString text();
diff --git a/src/network/access/qrestreply_p.h b/src/network/access/qrestreply_p.h
index 7fe0842ff36..5e76b54bcbb 100644
--- a/src/network/access/qrestreply_p.h
+++ b/src/network/access/qrestreply_p.h
@@ -36,7 +36,6 @@ public:
QByteArray contentCharset() const;
bool hasNonHttpError() const;
- QJsonDocument replyDataToJson();
};
QT_END_NAMESPACE
diff --git a/src/network/doc/snippets/code/src_network_access_qrestaccessmanager.cpp b/src/network/doc/snippets/code/src_network_access_qrestaccessmanager.cpp
index fcc8dbaef52..4ef077d0c26 100644
--- a/src/network/doc/snippets/code/src_network_access_qrestaccessmanager.cpp
+++ b/src/network/doc/snippets/code/src_network_access_qrestaccessmanager.cpp
@@ -26,7 +26,7 @@ manager->post(request, myJson, this, [this](QRestReply *reply) {
if (!reply->isSuccess()) {
// ...
}
- if (std::optional<QJsonObject> json = reply->json()) {
+ if (std::optional json = reply->json()) {
// use *json
}
});
@@ -37,7 +37,7 @@ manager->post(request, myJson, this, [this](QRestReply *reply) {
manager->get(request, this, [this](QRestReply *reply) {
if (!reply->isSuccess())
// handle error
- if (std::optional<QJsonObject> json = reply->json())
+ if (std::optional json = reply->json())
// use *json
});
//! [3]