diff options
author | Liang Qi <liang.qi@qt.io> | 2018-01-09 11:24:34 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-01-09 15:54:12 +0000 |
commit | 8cce9fa16f3531e1e094a798c007480afa2bcaab (patch) | |
tree | 978634e0b479dbc7c2e7776a3accc221babf367e | |
parent | f6aedc74c4a95440e649b625b6272f29e7f5fa71 (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.cpp | 29 | ||||
-rw-r--r-- | src/oauth/qabstractoauth2.h | 5 |
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 ¶met { 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 ¶mete { 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 ¶meters = QVariantMap()) override; Q_INVOKABLE QNetworkReply *post(const QUrl &url, const QVariantMap ¶meters = 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 ¶meters = 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 ¶meters = QVariantMap()) override; |