我只是尝试使用HTTP URL发送GET请求和我得到这两个SSL错误:QT HTTP GET请求SSL错误
> qt.network.ssl: QSslSocket: cannot call unresolved function d2i_DHparams
> qt.network.ssl: QSslSocket: cannot call unresolved function DH_free
我使用Windows 10 QTCreator(QT V5.8) ,并且我知道默认情况下不会通过QT导入SSL库。但是,我发送HTTP请求而不是HTTPS,那么为什么我会收到SSL错误?
这里是代码片段产生错误:
void MainWindow::sendGetRequest(QString& url)
{
QNetworkAccessManager networkManager;
QNetworkRequest request;
QUrl httpRequest(url);
request.setUrl(httpRequest);
currentReply = networkManager.get(request);
ui->label_2->setText("Request Sent...");
connect(&networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onGetRequestResult(QNetworkReply*)));
}
void MainWindow::onGetRequestResult(QNetworkReply * reply)
{
if (reply->error() != QNetworkReply::NoError) {
ui->label_2->setText("Get Request Error!");
return;
}
QString data = (QString) reply->readAll();
qDebug() << data;
}
后右侧的标签更改Request Sent...
的错误抛出和插槽onGetRequestResult()
永远不会被调用。
此外,我已经下载了两个SSL二进制文件,但这并不会改变任何内容,并且有没有办法为GET请求禁用SSL,因为我不需要使用它。
谢谢!
编辑您的加入您的问题先前的评论。 – eyllanesc
在HTTP请求的响应中可能会重定向到https,并且来自Qt的HTTP堆栈正在跟随它并尝试按服务器的命令通过https访问该站点。 –
我们假设响应正在经历SSL,但是我仍然如何解决这些错误?如果我使用'curl -X获取“url”'它工作得很好。但是,我没有在Windows 10上使用'curl'的特权。 –