diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2017-12-08 14:27:04 +0300 |
---|---|---|
committer | Olivier Goffart <ogoffart@woboq.com> | 2017-12-08 18:15:48 +0300 |
commit | 0a59faf03d94ae04b6a51594f2f5c1bbb1894767 (patch) | |
tree | 9f2a02915adc2cf6561b66d861ac85b4871ed66b /src/gui/ocsjob.cpp | |
parent | 7bd48b1327637b5296bb0315e3ab66fbe79cb565 (diff) |
OcsJob: Use QUrlQuery
Qurl::setEncodedQueryItems is deprecated.
Diffstat (limited to 'src/gui/ocsjob.cpp')
-rw-r--r-- | src/gui/ocsjob.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/src/gui/ocsjob.cpp b/src/gui/ocsjob.cpp index cc1e0d9fa..fda6e90ae 100644 --- a/src/gui/ocsjob.cpp +++ b/src/gui/ocsjob.cpp @@ -51,15 +51,16 @@ void OcsJob::appendPath(const QString &id) setPath(path() + QLatin1Char('/') + id); } -static QList<QPair<QByteArray, QByteArray>> -percentEncodeQueryItems( +static QUrlQuery percentEncodeQueryItems( const QList<QPair<QString, QString>> &items) { - QList<QPair<QByteArray, QByteArray>> result; + QUrlQuery result; + // Note: QUrlQuery::setQueryItems() does not fully percent encode + // the query items, see #5042 foreach (const auto &item, items) { - result.append(qMakePair( + result.addQueryItem( QUrl::toPercentEncoding(item.first), - QUrl::toPercentEncoding(item.second))); + QUrl::toPercentEncoding(item.second)); } return result; } @@ -70,13 +71,11 @@ void OcsJob::start() req.setRawHeader("Ocs-APIREQUEST", "true"); req.setRawHeader("Content-Type", "application/x-www-form-urlencoded"); - QUrl url = Utility::concatUrlPath(account()->url(), path()); QBuffer *buffer = new QBuffer; + QUrlQuery queryItems; if (_verb == "GET") { - // Note: QUrl::setQueryItems() does not fully percent encode - // the query items, see #5042 - url.setEncodedQueryItems(percentEncodeQueryItems(_params)); + queryItems = percentEncodeQueryItems(_params); } else if (_verb == "POST" || _verb == "PUT") { // Url encode the _postParams and put them in a buffer. QByteArray postData; @@ -90,12 +89,8 @@ void OcsJob::start() } buffer->setData(postData); } - - //We want json data - auto queryItems = url.encodedQueryItems(); - queryItems.append(qMakePair(QByteArray("format"), QByteArray("json"))); - url.setEncodedQueryItems(queryItems); - + queryItems.addQueryItem(QLatin1String("format"), QLatin1String("json")); + QUrl url = Utility::concatUrlPath(account()->url(), path(), queryItems); sendRequest(_verb, url, req, buffer); AbstractNetworkJob::start(); } |