From 8897e8cdfd9c0fbd5ba4a14df19e646391dc6cca Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Wed, 15 Aug 2007 14:15:24 +0000 Subject: [PATCH] more fixing on downloading class: toEncoded can't be used as get parameter. Use path() and construct query parameters ourselves. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14355 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/rbutilqt/httpget.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/rbutil/rbutilqt/httpget.cpp b/rbutil/rbutilqt/httpget.cpp index e54df73c3f..d1c80b8aff 100644 --- a/rbutil/rbutilqt/httpget.cpp +++ b/rbutil/rbutilqt/httpget.cpp @@ -109,13 +109,23 @@ bool HttpGet::getFile(const QUrl &url) } } http.setHost(url.host(), url.port(80)); + // construct query (if any) + QList > qitems = url.queryItems(); + QString query; + if(url.hasQuery()) { + query = "?"; + for(int i = 0; i < qitems.size(); i++) + query += qitems.at(i).first + "=" + qitems.at(i).second + "&"; + qDebug() << query; + } + if(outputToBuffer) { - qDebug() << "downloading to buffer:" << QString(url.toEncoded()); - getRequest = http.get(QString(url.toEncoded())); + qDebug() << "downloading to buffer:" << url.toString(); + getRequest = http.get(url.path() + query); } else { - qDebug() << "downloading to file:" << QString(url.toEncoded()) << qPrintable(outputFile->fileName()); - getRequest = http.get(QString(url.toEncoded()), outputFile); + qDebug() << "downloading to file:" << url.toString() << qPrintable(outputFile->fileName()); + getRequest = http.get(url.path() + query, outputFile); } qDebug() << "request scheduled: GET" << getRequest; @@ -129,11 +139,8 @@ void HttpGet::httpDone(bool error) if (error) { qDebug() << "Error: " << qPrintable(http.errorString()) << endl; } - if(!outputToBuffer) { + if(!outputToBuffer) outputFile->close(); - qDebug() << "File downloaded as" << qPrintable(outputFile->fileName()); - } - else qDebug() << "file downloaded to buffer"; emit done(error); }