Russian Qt Forum

Qt => Работа с сетью => Тема начата: xsentin от Февраль 18, 2011, 00:27



Название: QNetworkReply и наследник QNetworkAccessManager
Отправлено: xsentin от Февраль 18, 2011, 00:27
создал класс наследник QNetworkAccessManager, переопределил функцию createRequest
Код:
QNetworkReply* CNetworkAccessManager::createRequest(Operation op, QNetworkRequest &request, QIODevice *outgoingData)
{
QNetworkRequest myReq = request;
 return QNetworkAccessManager::createRequest( op, myReq, outgoingData );
}
далее использую в коде
Код:
 mngr = new CNetworkAccessManager(this);
mywebView->page()->setNetworkAccessManager(mngr);
connect(mngr, SIGNAL(finished(QNetworkReply*)), SLOT(mySlot(QNetworkReply*)));
mywebView->load(QUrl("http://www.prog.org.ru"))

в mySlot заходит только один раз, не срабатывает на загрузку контента, а если не использовать свой  CNetworkAccessManager, то сигнал finished реагирует на контент.
в чём может быть проблема?


Название: Re: QNetworkReply и наследник QNetworkAccessManager
Отправлено: serg_hd от Февраль 18, 2011, 00:40
а если передать request, а не с myReq? Т.е. передать, предварительно с ним поработав. Возможно request имеет дополнительные сигнал/слот связи, в отличие от созданного тобой, т.к.:

void QNetworkAccessManager::finished ( QNetworkReply * reply ) [signal]
This signal is emitted whenever a pending network reply is finished. The reply parameter will contain a pointer to the reply that has just finished. This signal is emitted in tandem with the QNetworkReply::finished() signal.


Название: Re: QNetworkReply и наследник QNetworkAccessManager
Отправлено: xsentin от Февраль 18, 2011, 09:19
приведённый мною выше код рабочий, просто сначало идут подряд много запросов, потом много ответов, а не запрос-ответ


Название: Re: QNetworkReply и наследник QNetworkAccessManager
Отправлено: kataklysm от Март 03, 2011, 19:28
Используй QEventLoop
Пример:
    
Код:
QEventLoop loop(this);
    connect(replyT,SIGNAL(finished()),&loop,SLOT(quit()));
    loop.exec();