我正在通过QNetwork访问管理器发出一个简单的get请求,我通过以下函数发送请求(该管理器在构造函数中启动)。
void ui_screen::check_api_authenciation(const QString& access_token) {
//construct the api url
QUrl api_validation_url(this->API_VALIDATION_URL);
QNetworkRequest api_validation_request(api_validation_url);
api_validation_request.setHeader(QNetworkRequest::ServerHeader, "Authorization: token " + access_token);
mgr->get(api_validation_request);
connect(mgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(on_authenciation_response_arrive(QNetworkReply*)));
}
并尝试接收以下功能
void ui_screen::on_authenciation_response_arrive(QNetworkReply* reply) {
QByteArray bts = reply->readAll();
QString str(bts);
ui->authenciation_progress->setRange(0,100);
ui->authenciation_progress->setValue(100);
ui->authenciation_progress_label->setText("Reply arrived");
}
但是reply->readAll()
会触发以下错误
错误:成员访问的类型不完整的“ QNetworkReply”
为什么我不能访问成员函数?
答案 0 :(得分:2)
通常会出现此类错误,因此您会丢失一些包含文件。
您可以包含一个前向声明,通过添加将“完成”该类型
#include <QNetworkReply>
位于代码顶部。