-
- // qDebug() << "Redirect!"; // << redirection;
-
- QNetworkReply *redirectReply = The::http()->simpleGet(redirection, networkReply->operation());
-
- setParent(redirectReply);
- networkReply->deleteLater();
- networkReply = redirectReply;
-
- // when the request is finished we'll invoke the target method
- connect(networkReply, SIGNAL(finished()), this, SLOT(finished()), Qt::UniqueConnection);
-
- // monitor downloadProgress to impl timeout
- connect(networkReply, SIGNAL(downloadProgress(qint64,qint64)),
- SLOT(downloadProgress(qint64,qint64)), Qt::UniqueConnection);
- readTimeoutTimer->start();
-
- // error signal
- connect(networkReply, SIGNAL(error(QNetworkReply::NetworkError)),
- SLOT(requestError(QNetworkReply::NetworkError)), Qt::UniqueConnection);
-
- connect(readTimeoutTimer, SIGNAL(timeout()), SLOT(readTimeout()), Qt::UniqueConnection);
- readTimeoutTimer->start();
-
- return;
+ if (networkReply->operation() == QNetworkAccessManager::GetOperation
+ || networkReply->operation() == QNetworkAccessManager::HeadOperation) {
+ QNetworkReply *redirectReply =
+ The::http()->request(redirection, networkReply->operation());
+ setParent(redirectReply);
+ networkReply->deleteLater();
+ networkReply = redirectReply;
+ setupReply();
+ readTimeoutTimer->start();
+ return;
+ } else qWarning() << "Redirection not supported" << networkReply->url().toEncoded();