我正在尝试向远程服务器发出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 .我也遵循了这个解决方案,仍然没有运气
sslv2在较新的发行版中完全禁用,通过dpkg
从launchpad安装libssl-0.98。
打开终端,转到解压缩的文件夹并运行:
sudo dpkg -i 文件.deb
sudo apt-get install -f
您可以使用QSsl::SecureProtocols启用从Qt版本开始被视为安全的SSL版本。