summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-01-09 11:24:34 +0100
committerLiang Qi <liang.qi@qt.io>2018-01-09 15:54:12 +0000
commit8cce9fa16f3531e1e094a798c007480afa2bcaab (patch)
tree978634e0b479dbc7c2e7776a3accc221babf367e
parentf6aedc74c4a95440e649b625b6272f29e7f5fa71 (diff)
Add two overload functions for put and post
with QByteArray or QHttpMultiPart in QAbstractOAuth2 Task-number: QTBUG-65316 Change-Id: I893b2ad602de8c539ea08b72150dd1f92162b9dc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
-rw-r--r--src/oauth/qabstractoauth2.cpp29
-rw-r--r--src/oauth/qabstractoauth2.h5
2 files changed, 34 insertions, 0 deletions
diff --git a/src/oauth/qabstractoauth2.cpp b/src/oauth/qabstractoauth2.cpp
index 49c8f03..c01281b 100644
--- a/src/oauth/qabstractoauth2.cpp
+++ b/src/oauth/qabstractoauth2.cpp
@@ -40,6 +40,7 @@
#include <QtNetwork/qnetworkreply.h>
#include <QtNetwork/qnetworkrequest.h>
#include <QtNetwork/qnetworkaccessmanager.h>
+#include <QtNetwork/qhttpmultipart.h>
QT_BEGIN_NAMESPACE
@@ -273,11 +274,25 @@ QNetworkReply *QAbstractOAuth2::post(const QUrl &url, const QVariantMap &paramet
{
Q_D(QAbstractOAuth2);
const auto data = d->convertParameters(parameters);
+ return post(url, data);
+}
+
+QNetworkReply *QAbstractOAuth2::post(const QUrl &url, const QByteArray &data)
+{
+ Q_D(QAbstractOAuth2);
QNetworkReply *reply = d->networkAccessManager()->post(d->createRequest(url), data);
connect(reply, &QNetworkReply::finished, [this, reply]() { emit finished(reply); });
return reply;
}
+QNetworkReply *QAbstractOAuth2::post(const QUrl &url, QHttpMultiPart *multiPart)
+{
+ Q_D(QAbstractOAuth2);
+ QNetworkReply *reply = d->networkAccessManager()->post(d->createRequest(url), multiPart);
+ connect(reply, &QNetworkReply::finished, [this, reply]() { emit finished(reply); });
+ return reply;
+}
+
/*!
Sends an authenticated PUT request and returns a new
QNetworkReply. The \a url and \a parameters are used to create
@@ -290,11 +305,25 @@ QNetworkReply *QAbstractOAuth2::put(const QUrl &url, const QVariantMap &paramete
{
Q_D(QAbstractOAuth2);
const auto data = d->convertParameters(parameters);
+ return put(url, data);
+}
+
+QNetworkReply *QAbstractOAuth2::put(const QUrl &url, const QByteArray &data)
+{
+ Q_D(QAbstractOAuth2);
QNetworkReply *reply = d->networkAccessManager()->put(d->createRequest(url), data);
connect(reply, &QNetworkReply::finished, std::bind(&QAbstractOAuth::finished, this, reply));
return reply;
}
+QNetworkReply *QAbstractOAuth2::put(const QUrl &url, QHttpMultiPart *multiPart)
+{
+ Q_D(QAbstractOAuth2);
+ QNetworkReply *reply = d->networkAccessManager()->put(d->createRequest(url), multiPart);
+ connect(reply, &QNetworkReply::finished, std::bind(&QAbstractOAuth::finished, this, reply));
+ return reply;
+}
+
/*!
Sends an authenticated DELETE request and returns a new
QNetworkReply. The \a url and \a parameters are used to create
diff --git a/src/oauth/qabstractoauth2.h b/src/oauth/qabstractoauth2.h
index 0f600b2..9262170 100644
--- a/src/oauth/qabstractoauth2.h
+++ b/src/oauth/qabstractoauth2.h
@@ -39,6 +39,7 @@
QT_BEGIN_NAMESPACE
+class QHttpMultiPart;
class QAbstractOAuth2Private;
class Q_OAUTH_EXPORT QAbstractOAuth2 : public QAbstractOAuth
{
@@ -65,8 +66,12 @@ public:
const QVariantMap &parameters = QVariantMap()) override;
Q_INVOKABLE QNetworkReply *post(const QUrl &url,
const QVariantMap &parameters = QVariantMap()) override;
+ Q_INVOKABLE virtual QNetworkReply *post(const QUrl &url, const QByteArray &data);
+ Q_INVOKABLE virtual QNetworkReply *post(const QUrl &url, QHttpMultiPart *multiPart);
Q_INVOKABLE QNetworkReply *put(const QUrl &url,
const QVariantMap &parameters = QVariantMap()) override;
+ Q_INVOKABLE virtual QNetworkReply *put(const QUrl &url, const QByteArray &data);
+ Q_INVOKABLE virtual QNetworkReply *put(const QUrl &url, QHttpMultiPart *multiPart);
Q_INVOKABLE QNetworkReply *deleteResource(const QUrl &url,
const QVariantMap &parameters = QVariantMap()) override;