Witam.
Napisałem prosty programik do pobierania zawartości stron HTML na podstawie url. Odbywa się to na zasadzie takiej, że w pliku głównym tworzę listę adresów url za pomocą której później wywołuję pobieranie danych ze strony odpowiednią metodą w pętli for.
#include <QtCore/QCoreApplication>
#include <downloader.h>
#include <QDir>
int main(int argc, char *argv[])
{
QDir::setCurrent(QCoreApplication::applicationDirPath());
QCoreApplication a(argc, argv);
Downloader newDownloader;
newDownloader.getConfiguration();
foreach (QString im,newDownloader.urlList) {
qDebug()<<"IM:"<<im;
newDownloader.download(im);
}
return a.exec();
}
Metoda download() wygląda następująco:
void Downloader::download(QString im)
{
http = new QHttp(this);
connect(http,SIGNAL(stateChanged(int)),this,SLOT(stateChanged(int)));
connect(http,SIGNAL(responseHeaderReceived(QHttpResponseHeader)), this,SLOT(responseHeaderReceived(QHttpResponseHeader)));
connect(http,SIGNAL(requestFinished(int,bool)),this,SLOT(requestFinished(int,bool)));
QUrl *tmpUrl = new QUrl(im);
QString host = tmpUrl->host();
QString path = tmpUrl->path();
qDebug() << "Path:"<<path;
qDebug() << "Hots:"<<host;
http->setHost(host);
http->get(path);
contentFilePath = host + ".txt";
}
Wszystko działa ładnie pięknie, ale tylko dla ostatniego elementu podawanego w pętli for. Czyli zawartość strony ściąga się tylko dla ostatniego url. Czy ktoś wie dlaczego tak się dzieje ?
dzięki za odpowiedź.:)