2
我需要能够发出请求GET请求,这需要使用信号来处理回复,并将回复以经过处理的形式返回。我已经按照Threading Wihtout the Headache中描述的方式构建了代码,但是当我运行答复时从未接收或处理过。使用线程处理信号和插槽
// Set-up request
QNetworkAccessManager* pConnection(new QNetworkAccessManager());
connect(pConnection,
SIGNAL(finished(QNetworkReply*)),
this,
SLOT(process(QNetworkReply*)));
QUrl url;
url.setUrl(HOST);
url.addQueryItem("P1", "Hi");
url.addQueryItem("P2", "Bob");
// Send request
QNetworkRequest request(url);
pConnection->get(request);
// Wait for reply
QThread* pResponce(new QThread(this));
connect(this,
SIGNAL(processingFinished()),
pResponce,
SLOT(quit()));
pConnection->moveToThread(pResponce);
pResponce->start();
pResponce->wait();
pConnection->deleteLater();
pResponce->deleteLater();
return this->processedReply;
显然我错过了什么,但什么?它在我不使用线程(和删除)时起作用,所以它不是URL或服务器。