У меня есть простой класс Сеть с:
private:
QNetworkAccessManager *httpclient;
Я создаю объект в конструкторе и подключаю сигнал и слот:
httpclient = new QNetworkAccessManager(this);
connect(httpclient, SIGNAL(finished(QNetworkReply*)), this, SLOT(httpRequestFinished(QNetworkReply*)));
Теперь я собираюсь вызвать метод get QNetworkAccessManager с помощью открытого метода getPage:
void Networking::getPage(const QString &uri)
{
QNetworkRequest request;
request.setUrl(uri);
httpclient->get(request);
}
Я ожидаю, что httpRequestFinished будет вызван, но это не так.
Я также попробовал это в целях тестирования:
void Networking::getPage(const QString &uri)
{
QNetworkRequest request;
request.setUrl(uri);
reply = httpclient->get(request);
connect(reply, SIGNAL(finished()), this, SLOT(httpReplyFinished()));
}
где ответ правильно определен в файле network.h :
private:
QNetworkAccessManager *httpclient;
QNetworkReply *reply;
Ничего не изменилось! Но если я получу доступ к reply-> bytesAvailable () после запроса get, все сигналы будут отправлены одновременно! Я ищу часами, но не знаю, что делаю не так.