多次使用 QNetworkAccessManager GET
using QNetworkAccessManager GET multiple times
我正在编写一个应用程序以等间隔请求网页,以便获取其中的任何更改(以检查是否收到新数据)。我是怎么做到的。
private:
QNetworkReply *r;
QNetworkAccessManager *m;
QNetworkRequest request;
QTimer *timer;
在构造函数中,
m = new QNetworkAccessManager(this);
timer = new QTimer(this);
connect(r , SIGNAL(readyRead()), this , SLOT(readit()));
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);
读取函数,
void MainWindow::readit(){
QString st;
st=r->readAll();
m->deleteResource(request);
ui->textBrowser->append(st);
}
更新功能,
void MainWindow::update()
{
request.setUrl(QUrl("http://localhost/test/default.php"));
r = m->get(request);
}
我的问题是 m->get(request)
仅在第一次调用时收到请求,再次调用时它什么也不做。我做了几次实验,但最终没有成功。我使用按钮单击将第二个请求更改为另一个网页,但它也什么也没做。
所以我需要专家的帮助,如何更新获取请求并多次获得新回复。
而且我想知道我做的是否正确,或者是否有比定期检查网站更可靠的方法从服务器获取数据更改数据。
我看到以下问题:
readyRead
每个请求触发任意次数 - 包括零次 (!),但您将其视为恰好触发一次。使用 finished
信号,这是你想要的:触发一次,不多不少。
update
槽没有将任何槽连接到请求。
我正在编写一个应用程序以等间隔请求网页,以便获取其中的任何更改(以检查是否收到新数据)。我是怎么做到的。
private:
QNetworkReply *r;
QNetworkAccessManager *m;
QNetworkRequest request;
QTimer *timer;
在构造函数中,
m = new QNetworkAccessManager(this);
timer = new QTimer(this);
connect(r , SIGNAL(readyRead()), this , SLOT(readit()));
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000);
读取函数,
void MainWindow::readit(){
QString st;
st=r->readAll();
m->deleteResource(request);
ui->textBrowser->append(st);
}
更新功能,
void MainWindow::update()
{
request.setUrl(QUrl("http://localhost/test/default.php"));
r = m->get(request);
}
我的问题是 m->get(request)
仅在第一次调用时收到请求,再次调用时它什么也不做。我做了几次实验,但最终没有成功。我使用按钮单击将第二个请求更改为另一个网页,但它也什么也没做。
所以我需要专家的帮助,如何更新获取请求并多次获得新回复。
而且我想知道我做的是否正确,或者是否有比定期检查网站更可靠的方法从服务器获取数据更改数据。
我看到以下问题:
readyRead
每个请求触发任意次数 - 包括零次 (!),但您将其视为恰好触发一次。使用finished
信号,这是你想要的:触发一次,不多不少。update
槽没有将任何槽连接到请求。