QT笔记——QT支持Https
我們想要實(shí)現(xiàn)支持https的請(qǐng)求,在一開(kāi)始,不做任何操作下,是不支持https的請(qǐng)求的
我的環(huán)境:vs2019 + qt 5.12.2
其他版本可能不清楚
什么是https:是由SSL + HTTP協(xié)議構(gòu)成的超文本加密協(xié)議,比http協(xié)議更加的安全
QT += network
#include <QSslSocket> #include <QNetworkAccessManager> QNetworkAccessManager manager; bool bSupp = QSslSocket::supportsSsl(); QString buildVersion = QSslSocket::sslLibraryBuildVersionString(); QString version = QSslSocket::sslLibraryVersionString(); qDebug() << bSupp << buildVersion << version << endl;qDebug() << QStringLiteral("支持發(fā)送數(shù)據(jù):") << manager.supportedSchemes();一:首先,我們要獲取對(duì)應(yīng)的QT 版本 的OpenSSL
下面是編譯源碼的過(guò)程,我們可以 自己下載對(duì)應(yīng)的dll:OpenSSL下載庫(kù)
然后直接應(yīng)用 庫(kù)的,別人的應(yīng)用:應(yīng)用openssl
二:我們需要下載對(duì)應(yīng) 版本 的OpenSSL
OpenSSL舊地址下載
三:下載配置編譯環(huán)境及工具ActivePerl **
ActivePerl 官網(wǎng)
因?yàn)槲以诠俜较螺d,沒(méi)下載成功,就隨便找了一個(gè)網(wǎng)址下載的,百度搜ActivePerl 5.28 安裝**
不是官網(wǎng)鏈接,但是配置成功了,默認(rèn)安裝即可
四:檢查我們下載的 ActivePerl
五:編譯我們的OpenSSL庫(kù)
我們需要打開(kāi)我們的VS2019 命令行 開(kāi)發(fā)者平臺(tái):
鼠標(biāo)右鍵 :管理員身份運(yùn)行 該命令行工具
進(jìn)入我們的前面下載的openssl庫(kù), 配置要Perl編譯的位數(shù):
cd openssl庫(kù)路徑 perl Configure VC-WIN64A no-asm --perfix="D:\\thirdLibrary\\openssl-1.0.2p"release版本:VC-WIN64A代表是64位release 庫(kù);VC-WIN32 代表是32位release庫(kù)
debug版本:debug VC-WIN64A ; debug VC-WIN32A
no-asm:編譯過(guò)程中不使用匯編代碼加快編譯過(guò)程。
–prefix=路徑指定生成路徑
執(zhí)行編譯:
ms\do_win64a
生成makefile,64位:ms\do_win64a.bat ;32為:ms\do_ms.bat
nmake -f ms\ntdll.mak
執(zhí)行完:
nmake -f ms\ntdll.mak install
測(cè)試:
nmake -f ms\ntdll.mak test
編譯動(dòng)態(tài)庫(kù):
nmake -f ms\ntdll.mak
編譯靜態(tài)庫(kù):
nmake -f ms\nt.mak
測(cè)試動(dòng)態(tài)庫(kù):
nmake -f ms\ntdll.mak test
測(cè)試靜態(tài)庫(kù):
nmake -f ms\nt.mak test
安裝動(dòng)態(tài)庫(kù):
nmake -f ms\ntdll.mak install
安裝靜態(tài)庫(kù):
nmake -f ms\nt.mak install
清除上次動(dòng)態(tài)庫(kù)的編譯,以便重新編譯:
nmake -f ms\ntdll.mak clean
清除上次靜態(tài)庫(kù)的編譯,以便重新編譯:
nmake -f ms\nt.mak clean
–cross-compile-prefix 交叉編譯參數(shù)
–prefix=DIR 安裝目錄設(shè)置,make install指令會(huì)安裝到指定目錄。
–debug 使用調(diào)試符號(hào)和零優(yōu)化級(jí)別構(gòu)建OpenSSL
–release 在不調(diào)試符號(hào)的情況下構(gòu)建OpenSSL。這是默認(rèn)設(shè)置
–libdir=DIR 安裝目錄樹(shù)頂部(請(qǐng)參閱–prefix選項(xiàng))下將安裝庫(kù)的目錄的名稱(chēng)。
默認(rèn)情況下,這是“l(fā)ib”。
請(qǐng)注意,僅在Windows上,.lib文件將存儲(chǔ)在此位置。 dll文件將始終安裝到“bin”目錄。
–openssldir=DIR OpenSSL配置文件的目錄,以及默認(rèn)證書(shū)和密鑰存儲(chǔ)。
默認(rèn)設(shè)置為:
Unix:/usr/local/ssl
Windows:C:\Program Files\Common Files\SSL或C:\Program Files(x86)\Common
Files\SSLOpen
VMS:SYS$COMMON:[OPENSSL-COMMON]
no-tests 不要構(gòu)建測(cè)試程序或運(yùn)行任何測(cè)試 no-shared 不要?jiǎng)?chuàng)建共享庫(kù),只創(chuàng)建靜態(tài)庫(kù)。
將 D:\QT5.12wj\Tools\mingw730_64\opt\bin
中的libeay32.dll 和 ssleay32.dll 復(fù)制到
D:\QT5.12wj\5.12.2\msvc2017_64\bin中
這是配置好后顯示的 可支持發(fā)送數(shù)據(jù):
7:測(cè)試我們的https
測(cè)試https網(wǎng)址
打印如下:
其中遇到過(guò)這樣的問(wèn)題:(一臺(tái)電腦沒(méi)有出現(xiàn),另外一臺(tái)電腦出現(xiàn),上面同樣的操作,不知道為什么會(huì)有,具體原因未知)
這個(gè)ICLS Client:百度查找 是設(shè)備驅(qū)動(dòng)文件
解決方案:將libeay32.dll 放入到.exe文件中 發(fā)現(xiàn)解決問(wèn)題了 ,可以不用加ssleay32.dll
然后就支持https了
參考博客:
感謝以下博客
鏈接一
鏈接二
鏈接三
鏈接四
鏈接五
總結(jié)
以上是生活随笔為你收集整理的QT笔记——QT支持Https的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 排队论---多服务台负指数分布排队系统的
- 下一篇: C++ MFC深入详解之----模态对