From 7ae02d8b7ad5baff9ce648a88ce4ea7dd7141aeb Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 30 May 2022 23:49:15 +0200 Subject: [PATCH] Tado: Fix encoding in login url --- tado/tado.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tado/tado.cpp b/tado/tado.cpp index f333033e..137f8774 100644 --- a/tado/tado.cpp +++ b/tado/tado.cpp @@ -142,16 +142,16 @@ void Tado::getToken(const QString &password) QNetworkRequest request; request.setUrl(QUrl(m_baseAuthorizationUrl)); request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/x-www-form-urlencoded"); - QByteArray body; - body.append("client_id=" + m_clientId); - body.append("&client_secret=" + m_clientSecret); - body.append("&grant_type=password"); - body.append("&scope=home.user"); - body.append("&username=" + m_username); - body.append("&password=" + password); + QUrlQuery query; + query.setQueryItems({{"client_id", m_clientId}, + {"client_secret", m_clientSecret}, + {"grant_type", "password"}, + {"scope", "home.user"}, + {"username", m_username}, + {"password", password}}); - QNetworkReply *reply = m_networkManager->post(request, body); - //qCDebug(dcTado()) << "Sending request" << request.url() << body; + QNetworkReply *reply = m_networkManager->post(request, query.toString(QUrl::FullyEncoded).toUtf8()); +// qCDebug(dcTado()) << "Sending request" << request.url() << query.toString(QUrl::FullyEncoded).toUtf8(); connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [reply, this] { @@ -567,14 +567,14 @@ void Tado::onRefreshTimer() QNetworkRequest request; request.setUrl(QUrl(m_baseAuthorizationUrl)); request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/x-www-form-urlencoded"); - QByteArray body; - body.append("client_id=" + m_clientId); - body.append("&client_secret=" + m_clientSecret); - body.append("&grant_type=refresh_token"); - body.append("&refresh_token=" + m_refreshToken); - body.append("&scope=home.user"); + QUrlQuery query; + query.setQueryItems({{"client_id", m_clientId}, + {"client_secret", m_clientSecret}, + {"grant_type", "refresh_token"}, + {"refresh_token", m_refreshToken}, + {"scope", "home.user"}}); - QNetworkReply *reply = m_networkManager->post(request, body); + QNetworkReply *reply = m_networkManager->post(request, query.toString(QUrl::FullyEncoded).toUtf8()); connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [reply, this] {