1.前言
这两天查询emoji表情时找到一个网站,其中一个模块是emoji表情和成语的对照表,但是没有搜索功能,打开网页开发工具看了一下源码,对照表就在HTML源数据里面,而只要发Get请求就可以得到这个HTML源数据,想到之前学了一点HTTP的编程,遂决定自己写一个简易的小程序来查询这个emoji表情,然后就发现这个网站它只能进行HTTPS请求哇,发现我的QT环境不支持,上网查了一下,这样可以输出支持的通讯协议:
// 创建网络访问管理器
QNetworkAccessManager manager;
qDebug()<<manager.supportedSchemes();//查看管理器支持的通信方案
结果就是没有包含https,如果支持的话就输出("ftp", "file", "qrc", "http", "https", "data")。问题就来了,如何让QT环境支持HTTPS通讯?
2.解决https通讯不支持问题
2.1 查看是否支持SSL协议以及版本
首先,我们来看HTTP和HTTPS协议的区别,就是多个了SSL加密,呐,现在问题明确,只要加入SSL加密协议就行了,首先,我们先看看自己的QT环境是否支持SSL协议,以及支持哪一个版本,运行下面的代码:
// 查看是否支持SSL协议以及版本
qDebug()<<QSslSocket::supportsSsl();
qDebug()<<QSslSocket::sslLibraryBuildVersionString();
//输出:
//true
//"OpenSSL 1.1.1d 10 Sep 2019"
这就是我的,支持且支持这个版本,我的QT版本是:5.14.2。如果你的QT也和我的一样那应该也是这样输出。