컴퓨터 공학/Qt

[ Qt 프로그래밍 ] 윈도우 QNetworkAccessManager에서 https://로 시작하는 주소접속할때 발생하는 에러

혼새미로 2015. 11. 27. 01:34
반응형


Win32OpenSSL_Light-1_0_1j.exe


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "rss.h"
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QTimer>
#include <QDateTime>
#include <QXmlStreamReader>
#include <QUrl>
#include <QDebug>
#include <QTextDocument>
#include <QtNetwork>
 
rss::rss()
{
    manager=new QNetworkAccessManager(this);
    connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(finishedSlot(QNetworkReply*)));
 
    updateRss();
 
}
 
rss::~rss()
{
    delete manager;
}
 
void rss::updateRss()
{
    //QString tempStr="http://www.facebook.com/";
    //QString tempStr="http://blog.rss.naver.com/remocon33.xml";
    manager->get(QNetworkRequest(QUrl(tempStr)));
}
 
void rss::finishedSlot(QNetworkReply *reply)
{
    QString tempUrl=reply->url().toString();
    qDebug()<<tempUrl;
    QString text=QString::fromUtf8(reply->readAll());
    qDebug()<<"text:"<<text;
}
 

 

 

다음과 같이 QNetworkAccessManager 클래스를 이용하여 https://로 시작하는 주소의 정보를 얻어온다고 했을때 다음과 같은 에러가 발생할 수 있습니다.

 

QSslSocket: cannot call unresolved function SSLv3_client_method

QSslSocket: cannot call unresolved function SSL_CTX_new

QSslSocket: cannot call unresolved function SSL_library_init

QSslSocket: cannot call unresolved function ERR_get_error

 

이 에러는 OpenSSL을 설치하지 않았기 때문에 발생하는 에러입니다. 따라서 OpenSSL을 설치하면 문제가 해결됩니다.

http://slproweb.com/products/Win32OpenSSL.html 

 

다음 사이트에 접속해서 Win32 OpenSSL Light 버전을 설치합니다. 32비트 사용자든 64비트 사용자든 win32로 설치해줍니다.

그리고 프로그램을 컴파일하고 실행하면 제대로 실행이 됩니다.

 

반응형