日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

QT笔记——QT支持Https

發(fā)布時(shí)間:2024/1/1 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT笔记——QT支持Https 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們想要實(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。