mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-18 09:32:40 -05:00
Don't close http connection manually, the destructor will do that anyway. Fixes some download problems. Also add support for following moved documents (http status 301, 303 and 307).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14361 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
ba8ec4a605
commit
57dd552e00
1 changed files with 14 additions and 3 deletions
|
|
@ -129,7 +129,6 @@ bool HttpGet::getFile(const QUrl &url)
|
||||||
}
|
}
|
||||||
qDebug() << "request scheduled: GET" << getRequest;
|
qDebug() << "request scheduled: GET" << getRequest;
|
||||||
|
|
||||||
http.close();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -137,7 +136,7 @@ bool HttpGet::getFile(const QUrl &url)
|
||||||
void HttpGet::httpDone(bool error)
|
void HttpGet::httpDone(bool error)
|
||||||
{
|
{
|
||||||
if (error) {
|
if (error) {
|
||||||
qDebug() << "Error: " << qPrintable(http.errorString()) << endl;
|
qDebug() << "Error: " << qPrintable(http.errorString()) << httpResponse();
|
||||||
}
|
}
|
||||||
if(!outputToBuffer)
|
if(!outputToBuffer)
|
||||||
outputFile->close();
|
outputFile->close();
|
||||||
|
|
@ -173,7 +172,19 @@ void HttpGet::httpResponseHeader(const QHttpResponseHeader &resp)
|
||||||
// if there is a network error abort all scheduled requests for
|
// if there is a network error abort all scheduled requests for
|
||||||
// this download
|
// this download
|
||||||
response = resp.statusCode();
|
response = resp.statusCode();
|
||||||
if(response != 200) http.abort();
|
if(response != 200) {
|
||||||
|
qDebug() << "http response error:" << response << resp.reasonPhrase();
|
||||||
|
http.abort();
|
||||||
|
}
|
||||||
|
// 301 -- moved permanently
|
||||||
|
// 303 -- see other
|
||||||
|
// 307 -- moved temporarily
|
||||||
|
// in all cases, header: location has the correct address so we can follow.
|
||||||
|
if(response == 301 || response == 303 || response == 307) {
|
||||||
|
// start new request with new url
|
||||||
|
qDebug() << "http response" << response << "- following";
|
||||||
|
getFile(resp.value("location"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue