我正在尝试向远程服务器发出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解决方案,仍然没有运气
答案 0 :(得分:0)
sslv2在较新的发行版中已完全停用,请dpkg
从{{1}}安装libssl-0.98。
打开终端,转到解压缩的文件夹并运行:
sudo dpkg -i file.deb
sudo apt-get install -f
您可以使用 QSsl :: SecureProtocols 启用自Qt版本起被视为安全的SSL版本。