QT 网络编程之https
生活随笔
收集整理的這篇文章主要介紹了
QT 网络编程之https
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HTTP
超文本傳輸協議,是一個基于請求與響應,無狀態的,應用層的協議,常基于TCP/IP協議傳輸數據,互聯網上應用最為廣泛的一種網絡協議,所有的WWW文件都必須遵守這個標準。設計HTTP的初衷是為了提供一種發布和接收HTML頁面的方法。
HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)的介紹:
以安全為目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。HTTPS 在HTTP 的基礎下加入SSL
層,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL。
下面直接上代碼:
// 頭文件 QNetworkAccessManager* m_AccessManager; QNetworkRequest m_Request;public slots:// 用來接收返回結果(異步的)void replyFinishedRes(QNetworkReply *reply); // cpp m_AccessManager = new QNetworkAccessManager(this); qDebug() << QSslSocket::supportsSsl(); qDebug() << m_AccessManager->supportedSchemes(); // 查看本地支持的協議 connect(m_AccessManager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinishedRes(QNetworkReply *)));如果本地不支持,不要著急,在QT目錄下或者電腦其他地方搜索 libeay32.dll和ssleay32.dll將這兩個dll拷貝到Qt12.0\5.12.0\mingw73_64\bin目錄下就可以了
如果出錯可以在replyFinishedRes(QNetworkReply *)槽函數中進行檢查,以及是哪個網址返回的數據
代碼:
if(reply->error() != QNetworkReply::NoError) {// 錯誤查看QNetworkReply::NetworkError error = reply->error();QString strError = "";strError += "Https URL: ";strError += reply->url().toString();switch (error){case QNetworkReply::ConnectionRefusedError:strError += QString("錯誤原因: 遠程服務器拒絕連接; 錯誤代碼: ");qDebug() << strError << reply->error();break;case QNetworkReply::HostNotFoundError:strError += QString("錯誤原因: 遠程主機名未找到(無效主機名); 錯誤代碼: ");qDebug() << strError << reply->error();break;case QNetworkReply::TooManyRedirectsError:strError += QString("錯誤原因: 請求超過了設定的最大重定向次數; 錯誤代碼: ");qDebug() << strError << reply->error();break;default:strError += QString("錯誤原因: 未知錯誤; 錯誤代碼: ");qDebug() << strError << reply->error();break;}return; }QByteArray data = reply->readAll(); // 查看是哪個網址返回的數據 if(m_strHttps_URL == reply->url().toString()) {getjson(data); }reply->deleteLater();總結
以上是生活随笔為你收集整理的QT 网络编程之https的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端小知识点(1):undefined和
- 下一篇: 易语言 安装目录没有VC98linke