【发布时间】:2012-04-17 18:20:02
【问题描述】:
我正在做一个项目,我试图通过 REST 请求向我们的网络服务发送请求。首先,我只将finished(QNetworkReply*) 信号连接到一个插槽,但由于 ssl 问题,它永远无法完成,我也尝试连接sslErrors(QNetworkReply*, const QList<QSslError>&) 插槽,因为请求是 https。
connect(&_accessManager, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)),
this, SLOT(printSslErrors(QNetworkReply*, const QList<QSslError>&)));
然后在我的打印功能中,我无法以任何方式访问错误列表。
void AssetManager::printSslErrors(QNetworkReply *reply, const QList<QSslError>& errors) {
...
}
我试过了:
const QSslError test = errors.at(0); // error on 'test'
QSslError test = errors.at(0); // error on 'test'
或
foreach(QSslError error, errors) {
qDebug() << error.errorString(); // error on 'errors'
}
for(int i = 0; i < errors.count(); i++) {
qDebug() << errors.at(i).errorString(); // error on 'errors'
}
导致:
错误 C2079:“测试”使用未定义的类“QSslError”
错误 C2440:“正在初始化”:无法从“const QSslError”转换为“int”
或
错误 C2027:使用未定义类型“QSslError”
错误 C2228: '.toString' 的左边必须有类/结构/联合
此外,IntelliSense 会在 errors 或 test 下划线并显示以下消息:
IntelliSense:不允许不完整的类型
(请注意,当我这样做时它不会抱怨errors.count())
我在头文件中包含<QSslError>...
我一直在为 sslError 信号苦苦挣扎,几周前我什至无法将信号连接到任何东西,因为它“不存在”。我错过了一个模块还是什么?
感谢您的帮助
编辑:
还是报错:
Object::connect: 没有这样的信号 QNetworkAccessManager::sslErrors(QNetworkReply*, const QList&)
另外,无法检查我是否有 Ssl
qDebug() << QSslSocket::supportsSsl();
因为 QSslSocket 是未定义的,即使它被包含在内。我必须在这里缺少一些重要的东西,对吗?我必须安装一些东西吗?我完全迷失在这里:(
【问题讨论】:
标签: c++ qt ssl undefined qnetworkaccessmanager