qt联合java_QT笔记:QT客户端与JAVA服务器的HTTPS通信

本文介绍了如何使用QT 5.1x版本构建与JAVA服务器的HTTPS通信,强调了本地.p12证书的加载和SSL配置步骤,确保数据加密传输的安全性。通过设置QSslConfiguration和QNetworkAccessManager,实现了QT客户端的HTTPS请求,并展示了登录验证的代码示例。
摘要由CSDN通过智能技术生成

59009319a322ec7dfa318af375d25413.png

在QT网络编程中,很多请求都是以HTTP,通过POST/GET方式来完成,简单高效。但是HTTP存在很严重的安全问题,HTTP数据是以明文方式传输,可以很容易被别人监听、抓取到。所以...HTTPS就应运而生了,它的存在就是为了解决HTTP方式传输的不安全问题。本篇文章总结了一个HTTPS加密传输的例子,很有参考意义,谨以此笔记记录下来。

PS: 首先要说明的是,QT是默认使用OpenSSL的。如果JAVA服务器上使用自带JDK生成的自签证书,在低版本的QT中是需要做一步转化工作的。需要将clent.p12文件,转成cert.pem 证书文件和key.pem密钥文件,将tomcat.keystore信任库文件转成tomcat.pem文件,然后再加载这三个文件,才能进行通信,这里坑了我许久。

在QT 5.1x 版本之后,是可以直接加载JDK 生成的自签证书clent.p12 文件的,本文是以直接加载clent.p12为例,讲解如何使用QT客户端与JAVA服务器进行通信。准备工作:将ssleay32.dll libeay32.dll运行库和client.p12证书文件与.exe运行文件放在同一目录下。

设置证书、网络配置及发送请求://声明一个 QNetworkAccessManager 对象

QNetworkAccessManager *m_accessManager_Registered;

m_accessManager_Registered = new QNetworkAccessManager(this); //实例化一个对象

//设置连接槽

QObject::connect(m_accessManager_Registered, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot_Registered(QNetworkReply*)));

//用户登陆验证;

void Widget::on_loginBt_clicked()

{

user_name = ui->userName->text();

user_passwd = ui->pa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值