error creating ssl context () qt

216
10 мая 2018, 07:43

Пытаюсь запустить простой пример парсинга с Википедии, но он выдаёт ошибку :

qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
Network Error:
 "Error creating SSL context ()"
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
Response Received:
 ""

Использую Windows 8 и mingw32-make. Пробовал искать библиотеки : LIBS += -libeay32 LIBS += -ssleay32 и подключать. Качал тут. Но всё равно не работает.

Сам пример:

#include <QCoreApplication>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QDebug>
#include <QTextStream>
#include <QSslError>
int main(int argc, char *argv[])
{
    QCoreApplication application(argc, argv);
    QNetworkAccessManager qnam;
    const QNetworkRequest wikireq(QUrl(QStringLiteral("https://en.wikipedia.org/w/api.php?action=query&format=json&titles=lemon")));
    QNetworkReply* wikirep = qnam.get(wikireq);
    QObject::connect(wikirep,&QNetworkReply::finished,[wikirep]()->void{
        QTextStream repStream(wikirep);
        qDebug() << "Response Received:\n" << repStream.readAll();
        wikirep->deleteLater();
    });
    QObject::connect(wikirep,QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error),[wikirep]()->void{
        qDebug() << "Network Error:\n" << wikirep->errorString();
        wikirep->deleteLater();
    });
    QObject::connect(wikirep,&QNetworkReply::sslErrors,[wikirep](const QList<QSslError> &errors)->void{
        qDebug() << "SSL Errors:";
        for(auto&& err : errors)
            qDebug() << err.errorString();
        wikirep->deleteLater();
    });
    return application.exec();
}
Answer 1

Мне помогла ссылка. Я просто установил, что там требуется и добавил в pro файл две библиотеки из папки bin установленного приложения.

LIBS += -Llibeay32 -Lssleay32
READ ALSO
Запись файла на флеш-накопитель

Запись файла на флеш-накопитель

Пришла в голову такая идея безобидного вируса: при запуске Windows запускается простая программа, которая вечно ищет сигнал о вставке нового...

303
Форматирование числа в денежный формат C++

Форматирование числа в денежный формат C++

Проблема заключается в том, что не корректно отображается число при его уменьшении на порядок или несколько порядков (было 1 234 567, вычли 500 000 - получилось...

209
Изменение элементов в multiset

Изменение элементов в multiset

Есть мультимножество,нужно ко всем элементам прибавить чилсло,как это можно сделать,ведь элементы в multiset нельзя изменять

249
Обработка текста c++

Обработка текста c++

Выполнить построчную обработку текстаесли выбранный символ встречается впервые удвоить его

261