我的应用程序使用QNetworkReply
's 从 RESTful API 发送和接收数据。
有许多教程可用于将QNetworkReply与QNetworkAccessManager一起使用
基本用法:
// 标题
QNetworkAccessManager *manager;
QNetworkReply *myReply;
QMetaObject::Connection conReply;
// 发出请求
void MainWindow::makeRequest(QString url) {
//...
QNetworkRequest request(QUrl(url));
myReply = manager->get(request) // or post(request)
conReply = QObject::connect(myReply, SIGNAL(finished()), this, SLOT(myReplyResponse()));
}
// 处理请求
void MainWindow::myReplyResponse(){
QObject::disconnect(conReply);
QByteArray data = myReply->readAll();
// or QByteArray data = myReply->read(myReply->bytesAvailable());
myReply->deleteLater();
// do something with this data
//...
}
使用类似的实现,我每 X 秒请求一次数据。
问题:
收到finished()
信号时,会触发处理回复的代码,但在读取数据时,我得到一个SIGSEGV
.
这个问题似乎是随机发生的,因此我无法确定是什么触发了它。
任何建议都会很乐意接受。