컴퓨터 공학/Qt
[ Qt 프로그래밍 ] 윈도우 QNetworkAccessManager에서 https://로 시작하는 주소접속할때 발생하는 에러
혼새미로
2015. 11. 27. 01:34
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="https://www.facebook.com/feeds/page.php?format=rss20&id=434617896555070"; //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로 설치해줍니다.
그리고 프로그램을 컴파일하고 실행하면 제대로 실행이 됩니다.