如何访问QNetworkReply-> readAll()?

时间:2018-11-17 14:40:54

标签: c++ qt qtnetwork qnetworkreply

我正在通过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”

为什么我不能访问成员函数?

1 个答案:

答案 0 :(得分:2)

通常会出现此类错误,因此您会丢失一些包含文件。

您可以包含一个前向声明,通过添加将“完成”该类型

#include <QNetworkReply>

位于代码顶部。