View Full Version : QNetworkAccessManager::head not working
jonks
21st October 2009, 07:21
I have some code like this:
QNetworkAccessManager nam;
QNetworkRequest request(url);
m_reply = nam.head(request);
connect(m_reply, SIGNAL(readyRead()), this, SLOT(gotNetworkHeader()));
connect(m_reply, SIGNAL(finished(QNetworkReply*)), this, SLOT(headFinished(QNetworkReply*)));
readyRead and finished are never signaled.
Does anyone know why?:confused:
wysota
21st October 2009, 08:50
Sure. Your object goes out of scope and is destroyed.
jonks
21st October 2009, 22:19
Sure. Your object goes out of scope and is destroyed.
m_reply is already class scope, but the QNetworkAccessManager object was not.
I just moved it to class scope, but It still does not work.
In the constuctor:
{
...
m_nam = new QNetworkAccessManager(this);
...
}
In a class method:
{
m_reply = m_nam->head(QNetworkRequest(url));
connect(m_reply, SIGNAL(readyRead()), this, SLOT(gotNetworkHeader()));
}
There are are no runtime errors reported by when the connect function is called.
...But still no signal is emitted???
wysota
21st October 2009, 22:23
Do you remember to run the event loop? Does the same request using get instead of head finishes correctly?
jonks
21st October 2009, 22:23
I got it
readReady() is the wrong signal.
I should have been connecting the finished() signal.
I now works.
Of course wysota - putting QNetworkAccessManager at class scope is required too.
Thanks
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.