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相关推荐
- Android 网络编程之HTTPS详解
前言:HTTPS涉及相关的知识,总是很难的将其归纳总结起来,本文旨在带你学习详细的HTTPS相关知识点,看完本文后,你会了解到以下相关知识点: HTTPS的工作原理 HTTPS为什么要这样设计 密码学 ...
- 嵌入式学习之QT学习---8 QT网络编程之TCP通信
前言: Qt网络模块提供了用于编写TCP/IP客户端和服务器端程序的各种类,如用于TCP通信的QTcpSocket和QTcpServer,用于UDP通信的QUdpSocket,还有用于实现HTTP.F ...
- C/C++编程知识:网络编程之 Https 详细分析,超详细知识点!
01.为何会有Https Http的缺点 通信使用明文 通信使用明文意味着安全性大大降低,当通信过程被窃听后,无需花费额外的投入就可看到传输的数据. 例如使用抓包工具,无需任何配置就可查看任何使用HT ...
- Qt网络编程之QNetworkAccessManager
注意:这个类的所有函数都是可重入的. 这个类是从Qt4.4引入的. **详细描述 **QNetworkAccessManager类允许应用程序发送网络请求和接收网络应答. Network Access ...
- Qt网络编程之QNetworkRequest
Qt Network 模块中提供了一些高级别的类,例如:QNetworkRequest.QNetworkReply 和 QNetworkAccessManager,使用常见的协议执行网络操作. 详细描 ...
- Qt网络编程之UDP编程练习(20200219)
服务端 #include "widget.h" #include <QApplication> #include <QString> #include &l ...
- Android 网络编程之OkHttp源码解析
前言:OkHttp框架是Android的网络请求框架,无数的项目都在使用着这个框架,重要性不言而喻; 本文会将OKHTTP的源码进行拆解,每个部分来单独学习,由简入深,循序渐进,篇幅较长,建议收藏,慢 ...
- Java网络编程之TCP、UDP
Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. J ...
- java网络编程之TCP通讯
java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, 1 /* 2 *TCP 3 *建立连接,形成传输数据的通道: 4 *在连接中进行大数据量传输: ...
- 浅谈Java网络编程之Socket (2)
<浅谈Java网络编程之Socket (1)>中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码. import java.net.*; import java.io ...
最新文章
- 爬虫之数据提取jsonpath模块的使用场景和使用方法
- 成功解决:利用编程向数据库插入一条记录,而从数据库中查不到该条记录
- Hibernate ORM框架——连接池相关
- gh0st源码分析与远控的编写(四)
- python 生成pdf页面大小_(Python)更改使用xtopd生成的PDF文件的页面大小和格式
- IntelliJ IDEA 2020 数据库连接Oracle和Mysql
- Java 实例 - 测试两个字符串区域是否相等
- DATASNAP数据序列之FIREDAC的TFDJSONDataSets
- mysql 向量写法_mysql – 你如何在Ruby中处理一个非常大的向量?
- Kettle连接mysql数据库所需驱动包,出现报错情况(附驱动下载方法)
- 2022-CKA考试经验总结
- easyUI详解教程
- DIY一个UNISOLDER焊台无线红外休眠座
- 如何制定个人学习计划?
- javascript Array系列函数之9:slice拷贝一个数组
- 数据分析师—Excel函数篇
- 2019计算机三级网络技术答案,2019年计算机三级网络技术精选练习题
- 3GP/FLV/AVI 格式整理
- 耶路撒冷圣城起源笔记
- 总结python之excel write(row,col,data)
热门文章
- java关键字定义字符变量_Java 关键字和标识符
- [HTTP权威指南]2.HTTP连接管理
- 不用PLC编程,实现USB或串口条码枪对接PLC,数据直接写入寄存器
- 【电脑运用及修理】连接不到网站服务器解决方案【win10】
- 视频安防监控系统工程设计规范GB 50395-2007
- 数据库SQL Server 基础知识思维导图
- 关于dsoframer VC++下的使用
- QT添加MySQL驱动依赖
- python全套视频迅雷下载_[全套视频] 老王Python基础,进阶,项目篇(无KEY完整版) 视频教程 15G...
- 火狐firebug,firepath以及Selenium IDE插件安装方法