Question

I am trying to download CSV file from Yahoo Finances using GET in my program which is using Qt 4.7.

YahooDataLoader::YahooDataLoader(QObject *parent): QObject(parent)
{
    manager = new QNetworkAccessManager(this);

    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(printNewData(QNetworkReply*)));
}

void YahooDataLoader::getDataForCompany(QString companyName, QDate startDate, QDate endDate) {

    QString string("http://ichart.finance.yahoo.com/table.csv?s=GOOG&a=00&b=1&c=2014&d=02&e=1&f=2014");

    QNetworkRequest request;
    request.setUrl(QUrl(string));

    manager->get(request);
}

void YahooDataLoader::printNewData(QNetworkReply* reply) {

    QByteArray bytes = reply->readAll();
    QString string = QString::fromUtf8(bytes);

    Reporter::getInstance()->logMessage(string);
}

Unfortunately, I am not receiving any response, what I am mean is that printNewData() is not invoked. I think that URL is correct... Do You see what is wrong?

Was it helpful?

Solution

YahooDataLoader* loader = new YahooDataLoader(0);
loader->getDataForCompany("", QDate(), QDate());

output:
"Date,Open,High,Low,Close,Volume,Adj Close 2014-02-28,1220.34,1224.19,1206.22,1215.65,2313600,1215.65 2014-02-27,1218.39,1224.23,1217.01,1219.21,1260000,1219.21 2014-02-26,1224.00,1228.88,1213.76,1220.17,1982200,1220.17 2014-02-25,1215.94,1224.50,1210.42,1220.00,1438700,1220.00 2014-02-24,1205.36,1220.16,1205.10,1212.51,1674300,1212.51 2014-02-21,1207.81,1209.87,1202.84,1203.79,1862300,1203.79 2014-02-20,1203.14,1206.89,1200.22,1204.11,1700800,1204.11 2014-02-19,1205.30,1209.22,1197.50,1202.34,2103600,1202.34 2014-02-18,1201.41,1212.87,1200.00,1210.88,2108900,1210.88 2014-02-14,1195.61,1204.39,1192.80,1202.80,2186700,1202.80

As you see your code works pretty well on my machine. Maybe you forget getDataForCompany function call in your code?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top