diff options
-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; |