2017-10-07 35 views
2

我正在嘗試向遠程服務器發出POST請求。這裏是我的代碼:qt.network.ssl:QSslSocket:無法解析SSLv2_client_method

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解決方案,仍然沒有運氣

+0

您是否在解決方案鏈接中安裝了OpenSSL? – Azeem

+0

我在windows中也有openssl的問題。你應該在Ubuntu上安裝openssl。 'sudo apt-get install libssl-dev' – saeed

+0

@saeed Azeem這兩個軟件包已經安裝 – pyprism

回答

0

sslv2在新的發行版中完全禁用,安裝libssl-0.98從launchpaddpkg

打開終端,轉到提取的文件夾,然後運行:

須藤dpkg -i來file.deb

命令和apt-get安裝-f

您可以使用QSsl :: SecureProtocols以啓用Qt版本認爲安全的SSL版本。

+0

仍然面臨這個問題。 – pyprism

+0

你是否重新啓動你的電腦 – saeed

+0

是的,我已經做到了。 – pyprism