查看完整版本: [-- QNetworkAccessManager 和 openSSL的问题 --]

QTCN开发网 -> Qt基础编程 -> QNetworkAccessManager 和 openSSL的问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

lymdw8888 2017-05-24 15:41

QNetworkAccessManager 和 openSSL的问题

刚开始学习网络编程,搜了一个获取网页内容的简单例子,用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 2017-05-24 15:46
[attachment=17161]
[attachment=17162]

stlcours 2017-05-24 21:29
libeay32.dll ssleay32.dll 也有版本高低之分,试试高版本的,里面会有更多的函数,也许就包括了这2个函数。

lymdw8888 2017-05-26 00:09
stlcours:libeay32.dll ssleay32.dll 也有版本高低之分,试试高版本的,里面会有更多的函数,也许就包括了这2个函数。 (2017-05-24 21:29) 

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

lymdw8888 2017-05-29 02:36
解决了,是QT5.8的问题,5.8版本非常不好用,不要用了


查看完整版本: [-- QNetworkAccessManager 和 openSSL的问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled