From 68788ace91e7b9feab2b8170298dfcf7ee06859a Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 1 Apr 2011 17:10:46 +0000 Subject: fixed scrobbling errors for songs with "+" characters git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2140 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/scrobbler/scrobbler2.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/plugins/General/scrobbler') diff --git a/src/plugins/General/scrobbler/scrobbler2.cpp b/src/plugins/General/scrobbler/scrobbler2.cpp index 7f25ec3d9..7d0aca9aa 100644 --- a/src/plugins/General/scrobbler/scrobbler2.cpp +++ b/src/plugins/General/scrobbler/scrobbler2.cpp @@ -400,13 +400,15 @@ void Scrobbler2::submit() } data.append(SECRET); body.addQueryItem("api_sig", QCryptographicHash::hash(data, QCryptographicHash::Md5).toHex()); + QByteArray bodyData = body.toEncoded().remove(0,1); + bodyData.replace("+", QUrl::toPercentEncoding("+")); QNetworkRequest request(url); request.setRawHeader("User-Agent", m_ua); request.setRawHeader("Host", url.host().toAscii()); request.setRawHeader("Accept", "*/*"); - request.setHeader(QNetworkRequest::ContentLengthHeader, body.toEncoded().remove(0,1).size()); - m_submitReply = m_http->post(request, body.toEncoded().remove(0,1)); + request.setHeader(QNetworkRequest::ContentLengthHeader, bodyData.size()); + m_submitReply = m_http->post(request, bodyData); } void Scrobbler2::sendNotification(const SongInfo &info) @@ -445,13 +447,15 @@ void Scrobbler2::sendNotification(const SongInfo &info) } data.append(SECRET); body.addQueryItem("api_sig", QCryptographicHash::hash(data, QCryptographicHash::Md5).toHex()); + QByteArray bodyData = body.toEncoded().remove(0,1); + bodyData.replace("+", QUrl::toPercentEncoding("+")); QNetworkRequest request(url); request.setRawHeader("User-Agent", m_ua); request.setRawHeader("Host", url.host().toAscii()); request.setRawHeader("Accept", "*/*"); - request.setHeader(QNetworkRequest::ContentLengthHeader, body.toEncoded().remove(0,1).size()); - m_notificationReply = m_http->post(request, body.toEncoded().remove(0,1)); + request.setHeader(QNetworkRequest::ContentLengthHeader, bodyData.size()); + m_notificationReply = m_http->post(request, bodyData); } void Scrobbler2::syncCache() -- cgit v1.2.3-13-gbd6f