我正在做一个项目,我试图通过 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:'test' 使用未定义的类 'QSslError'
错误 C2440:'initializing':无法从 '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 是未定义的,即使它被包含在内。我必须在这里缺少一些重要的东西,对吗?我必须安装一些东西吗?我完全迷失在这里:(