summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/httpserver/qhttpserverresponse.cpp6
-rw-r--r--src/httpserver/qhttpserverresponse.h1
-rw-r--r--tests/auto/qhttpserver/tst_qhttpserver.cpp16
3 files changed, 23 insertions, 0 deletions
diff --git a/src/httpserver/qhttpserverresponse.cpp b/src/httpserver/qhttpserverresponse.cpp
index 9b04ce0..5941418 100644
--- a/src/httpserver/qhttpserverresponse.cpp
+++ b/src/httpserver/qhttpserverresponse.cpp
@@ -76,6 +76,12 @@ QHttpServerResponse::QHttpServerResponse(const QJsonObject &data)
{
}
+QHttpServerResponse::QHttpServerResponse(const QJsonArray &data)
+ : QHttpServerResponse(mimeApplicationJson,
+ QJsonDocument(data).toJson(QJsonDocument::Compact))
+{
+}
+
QHttpServerResponse::QHttpServerResponse(const QByteArray &mimeType,
const QByteArray &data,
const StatusCode status)
diff --git a/src/httpserver/qhttpserverresponse.h b/src/httpserver/qhttpserverresponse.h
index 89e5b9e..030b8c4 100644
--- a/src/httpserver/qhttpserverresponse.h
+++ b/src/httpserver/qhttpserverresponse.h
@@ -58,6 +58,7 @@ public:
QHttpServerResponse(const QString &data);
explicit QHttpServerResponse(const QByteArray &data);
QHttpServerResponse(const QJsonObject &data);
+ QHttpServerResponse(const QJsonArray &data);
QHttpServerResponse(const QByteArray &mimeType,
const QByteArray &data,
const StatusCode status = StatusCode::Ok);
diff --git a/tests/auto/qhttpserver/tst_qhttpserver.cpp b/tests/auto/qhttpserver/tst_qhttpserver.cpp
index 69b176c..a4e15af 100644
--- a/tests/auto/qhttpserver/tst_qhttpserver.cpp
+++ b/tests/auto/qhttpserver/tst_qhttpserver.cpp
@@ -44,6 +44,7 @@
#include <QtCore/qmetaobject.h>
#include <QtCore/qjsonobject.h>
#include <QtCore/qjsonvalue.h>
+#include <QtCore/qjsonarray.h>
#include <QtNetwork/qnetworkaccessmanager.h>
#include <QtNetwork/qnetworkreply.h>
@@ -205,6 +206,15 @@ void tst_QHttpServer::initTestCase()
};
});
+ httpserver.route("/json-array/", [] () {
+ return QJsonArray{
+ 1, "2",
+ QJsonObject{
+ {"name", "test"}
+ }
+ };
+ });
+
urlBase = QStringLiteral("http://localhost:%1%2").arg(httpserver.listen());
}
@@ -375,6 +385,12 @@ void tst_QHttpServer::routeGet_data()
<< 200
<< "application/json"
<< "{\"property\":\"test\",\"value\":1}";
+
+ QTest::addRow("json-array")
+ << "/json-array/"
+ << 200
+ << "application/json"
+ << "[1,\"2\",{\"name\":\"test\"}]";
}
void tst_QHttpServer::routeGet()