Reputation: 9
When debug code, never enter into lambda function. Why do I have this problem?
QNetworkRequest req = QNetworkRequest(url);
QNetworkReply *reply = m_manager->get(req);
QObject::connect(reply, &QNetworkReply::finished,[reply](){
qDebug() << "start => ";
if(reply ->error() == QNetworkReply::NoError) {
QByteArray response = reply->readAll();
qDebug() << "response => ";
qDebug() << QString(response);
return response;
} else {
QByteArray error = reply ->readAll();
return error;
}
});
Upvotes: -1
Views: 360
Reputation: 9
This is the solution to my problem, must create a signal for return data.
QObject::connect(reply,&QNetworkReply::finished,this, [this, reply]() {
qDebug() << "Got reply finished";
if(reply ->error() == QNetworkReply::NoError) {
m_json= reply->readAll();
reply->deleteLater();
emit workResponseChanged(m_workJson);
} else {
m_json= reply ->readAll();
reply->deleteLater();
emit workResponseChanged(m_workJson);
}
});
return QByteArray();
Upvotes: 0