qt.network.ssl:QSslSocket:无法解析SSLv2_client_method

时间:2017-10-07 04:29:41

标签: c++ qt ubuntu qt5

我正在尝试向远程服务器发出POST请求。这是我的代码:

void LoginWindow::on_login_pushButton_clicked()
{
    const QString url = ui->server_lineEdit->text ();
    const QString username = ui->username_lineEdit->text ();
    const QString password = ui->password_lineEdit->text ();
    QNetworkAccessManager mAccessManager;
    QNetworkRequest request(QUrl(url + "/api/auth/"));

    QUrlQuery urlQuery;
    urlQuery.addQueryItem ("username", username);
    urlQuery.addQueryItem ("password", password);

    QUrl params;
    params.setQuery (urlQuery);

    QNetworkReply* reply = mAccessManager.post (request, params.toEncoded ());

    connect (reply, &QNetworkReply::readyRead, [reply]() {
        qDebug()  << "Ready to read from reply";
    });
    connect (reply, &QNetworkReply::sslErrors, [this] (QList<QSslError> error) {
        qWarning () << "Ssl error: " << error;
    });

}

当我点击登录按钮时,除了应用程序输出选项卡中的消息外没有任何反应。

qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method

我检查了远程服务器日志,没有来自qt客户端的请求。

我使用的是ubuntu 16.04和Qt 5.9。我也遵循this解决方案,仍然没有运气

1 个答案:

答案 0 :(得分:0)

sslv2在较新的发行版中已完全停用,请dpkg从{{1}}安装libssl-0.98。

打开终端,转到解压缩的文件夹并运行:

  

sudo dpkg -i file.deb

     

sudo apt-get install -f

您可以使用 QSsl :: SecureProtocols 启用自Qt版本起被视为安全的SSL版本。