QString const LinkStatus::toString() const { QString aux; if(!is_root_) { Q_ASSERT(parent_); aux += i18n( "Parent: %1" ).arg( parent()->absoluteUrl().prettyURL() ) + "\n"; } Q_ASSERT(!original_url_.isNull()); aux += i18n( "URL: %1" ).arg( absoluteUrl().prettyURL() ) + "\n"; aux += i18n( "Original URL: %1" ).arg( originalUrl() ) + "\n"; if(node()) aux += i18n( "Node: %1" ).arg( node()->content() ) + "\n"; return aux; }
//handling http redirection: http://stackoverflow.com/questions/14809310/qnetworkreply-and-301-redirect void Downloader::httpClientReplyFinished(QNetworkReply *reply){ if(!redirectUrl.isEmpty()){//avoid redirect loops return; } redirectUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toString(); if(!redirectUrl.isEmpty() && redirectUrl != this->downloadUrl) { //we're being redirected? QUrl originalUrl(downloadUrl); QUrl resolvedUrl = originalUrl.resolved(redirectUrl); qDebug() << "Redirecting..."; doHttpRequest(resolvedUrl.toString());//We'll do another request to the redirection url. } else{ redirectUrl.clear(); } }