Моя проблема
Я скомпилировал OpenSSL в QT, чтобы включить поддержку OpenSSL. В компиляции все оказалось правильно.
Однако, когда я пытаюсь использовать официальный пример HTTP-приложения, которое можно найти , можно найти здесь , каждый раз, когда я пытаюсь загрузить страницу https, он сигнализирует о двух QSslError, каждое с содержимым NoError.
Типы QSslErrors, включая NoError, документированы здесь , плохо. Нет объяснения, почему они даже включили тип ошибки с именем NoError или что это означает.
Как ни странно, код ошибки NoError кажется верным, поскольку он отлично загружает удаленный https-документ даже при сообщении об ошибке.
Кто-нибудь знает, что это значит и что может быть причиной этого?
Дополнительное фоновое чтение
Вот соответствующая часть кода из примера приложения (это связано с сигналом sslErrors сетевого подключения конструктором):
void HttpWindow::sslErrors(QNetworkReply*,const QList<QSslError> &errors)
{
QString errorString;
foreach (const QSslError &error, errors) {
if (!errorString.isEmpty())
errorString += ", ";
errorString += error.errorString();
}
if (QMessageBox::warning(this, tr("HTTP"),
tr("One or more SSL errors has occurred: %1").arg(errorString),
QMessageBox::Ignore | QMessageBox::Abort) == QMessageBox::Ignore) {
reply->ignoreSslErrors();
}
}
Я попробовал старую версию этого примера, и она дала тот же результат.
Я пробовал OpenSSL 1.0.0a и 0.9.8o. Я пытался самостоятельно компилировать OpenSSL, я пытался использовать предварительно скомпилированные версии OpenSSL из сети. Все дают одинаковый результат.
Если бы я впервые использовал QT с SSL, я бы почти подумал, что это ожидаемый результат (даже если в их примере приложения отображаются окна с сообщениями об ошибках), если бы не тот факт, что в прошлый раз я играл с QT Используя то, что сейчас было бы старой версией QT со старой версией SSL, я отчетливо помню, как все работало нормально, без окон ошибок.
Моя система работает под управлением Windows 7 x64.