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;
|
||||
|
||||
http.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -137,7 +136,7 @@ bool HttpGet::getFile(const QUrl &url)
|
|||
void HttpGet::httpDone(bool error)
|
||||
{
|
||||
if (error) {
|
||||
qDebug() << "Error: " << qPrintable(http.errorString()) << endl;
|
||||
qDebug() << "Error: " << qPrintable(http.errorString()) << httpResponse();
|
||||
}
|
||||
if(!outputToBuffer)
|
||||
outputFile->close();
|
||||
|
|
@ -173,7 +172,19 @@ void HttpGet::httpResponseHeader(const QHttpResponseHeader &resp)
|
|||
// if there is a network error abort all scheduled requests for
|
||||
// this download
|
||||
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