• 3459阅读
  • 4回复

[提问]QNetworkAccessManager 和 openSSL的问题 [复制链接]

上一主题 下一主题
离线lymdw8888
 

只看楼主 倒序阅读 楼主  发表于: 2017-05-24
刚开始学习网络编程,搜了一个获取网页内容的简单例子,用QTcreater构建通过,运行的时候报

“qt.network.ssl: QSslSocket: cannot call unresolved function d2i_DHparams
qt.network.ssl: QSslSocket: cannot call unresolved function DH_free”

但是又能成功获取网页信息。

运行环境是(win10 + QT5.8 MSVC2013 + VS2013)       (64位)

网上搜了好几个小时,基本都是在说libeay32.dll ssleay32.dll这两个文件的事,我已经尝试过拷贝到D:\Qt\Qt5.8.0\5.8\msvc2013_64\bin下面,拷贝到debug文件夹里面,全都没用。

代码如下:
#include "mainwindow.h"
#include <QUrl>
#include <QVariant>
#include "ui_mainwindow.h"
#include <qdebug.h>
#include <QtNetwork>
#include <QNetworkAccessManager>
#include <QNetworkReply>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    m_NetManger = new QNetworkAccessManager(this);
    QUrl url("http://news.163.com/17/0523/20/CL57EDNG0001875N.html");


    QObject::connect(m_NetManger, SIGNAL(finished(QNetworkReply*)),
                     this, SLOT(finishedSlot(QNetworkReply*)));
    m_NetManger->get(QNetworkRequest(url));
}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::finishedSlot(QNetworkReply *m_Reply)
{
    m_Reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
    m_Reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
    if (m_Reply->error() == QNetworkReply::NoError)
    {
        QByteArray bytes = m_Reply->readAll();
        QString string = QString::fromUtf8(bytes);
        qDebug()<< string.left(100);

    }
    else
    {
        qDebug()<< m_Reply->errorString();
    }
    m_Reply->deleteLater();
}
离线lymdw8888

只看该作者 1楼 发表于: 2017-05-24

离线stlcours

只看该作者 2楼 发表于: 2017-05-24
libeay32.dll ssleay32.dll 也有版本高低之分,试试高版本的,里面会有更多的函数,也许就包括了这2个函数。
离线lymdw8888

只看该作者 3楼 发表于: 2017-05-26
回 stlcours 的帖子
stlcours:libeay32.dll ssleay32.dll 也有版本高低之分,试试高版本的,里面会有更多的函数,也许就包括了这2个函数。 (2017-05-24 21:29) 

不行,试过了最新版本,32位的64位的全试过,不管怎么替换,都一样。
离线lymdw8888

只看该作者 4楼 发表于: 2017-05-29
解决了,是QT5.8的问题,5.8版本非常不好用,不要用了
快速回复
限100 字节
 
上一个 下一个