首页 > 解决方案 > 如何访问 QNetworkReply->readAll()?

问题描述

我正在通过 QNetwork 访问管理器发出一个简单的获取请求,我在以下函数中发送请求(管理器在构造函数中启动)。

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”

为什么我无法访问成员函数?

标签: c++qtqtnetworkqnetworkreply

解决方案


如果您缺少一些包含文件,则会引发此错误。

您可以从头文件中包含QNetworkReply将通过添加“完成”类型的类的声明

#include <QNetworkReply>

在文件的顶部。


推荐阅读