Qt 之 使用 https:// 发送 HTTP请求
来源:互联网 发布:深爱的女孩 网络歌手 编辑:程序博客网 时间:2024/05/22 06:07
一、简述
在使用Qt发送HTTP请求中一般使用的链接都是http://前缀,而有的服务器支持 https://前缀的链接,而Qt本身是支持https的,但是https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在Qt中使用https需要进行SSL认证。实现非常容易,简单几步即可完成。
二、HTTPS和HTTP的区别
1、简介
超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
2、区别
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
三、如何进行SSL认证
1、首先,因为需要Openssl支持,使用SSL进行认证,所以需要对应的库文件 libeay32.dll和ssleay32.dll。需要下载libeay32.dll 和 ssleay32.dll两个库文件,将这两个库文件拷贝到程序生成目录下(即生成exe的同级目录)或者拷贝到QtNetwork模块的库文件目录中。
2、在发送HTTP请求之前加上如下代码
void onSendHttpsRequest(QString url){ QNetworkAccessManager* pManager = new QNetworkAccessManager(this); QNetworkRequest request; // 发送https请求前准备工作; QSslConfiguration config; QSslConfiguration conf = request.sslConfiguration(); conf.setPeerVerifyMode(QSslSocket::VerifyNone); conf.setProtocol(QSsl::TlsV1SslV3); request.setSslConfiguration(conf); request.setUrl(QUrl(url)); // "https://www.temp.com" QNetworkReply *pReply = pManager->post(request, bytePost); connect(pReply , SIGNAL(finished()) , this , SLOT(onFinished()); connect(pReply , SIGNAL(error(QNetworkReply::NetworkError)) , this , SLOT(onError(QNetworkReply::NetworkError)));}// 请求完成;void onFinished(){ QNetworkReply *pReplay = qobject_cast<QNetworkReply*>(sender()); // 保存接受的数据; QByteArray replyContent = pReplay->readAll();}// 请求失败;void onError(QNetworkReply::NetworkError errorCode){ QNetworkReply *pReplay = qobject_cast<QNetworkReply*>(sender()); // 输出错误码及错误信息; qDebug()<< errorCode; qDebug()<< pReplay->errorString();}
关于两个库文件下载
1、在 http://slproweb.com/products/Win32OpenSSL.html 中下载 Win32 OpenSSL进行安装,将bin目录下面的库拷贝出来放到生成程序exe同级目录下即可。
2、 libeay32.dll 、 ssleay32.dll动态链接库 直接在我的资源中进行下载。
- Qt 之 使用 https:// 发送 HTTP请求
- Qt 之 使用 https:// 发送 HTTP请求
- Qt 发送 https 请求
- Qt 发送 https 请求 .
- 使用URLConnction发送HTTP/HTTPS请求
- Qt 之 使用 https:// 发送 HTTP请求 标签: qtHTTPhttpsSSLSSL认证 2016-12-12 22:16 3693人阅读 评论(3) 收藏 举报 分类: Qt(56)
- Qt发送HTTP请求
- Qt发送http请求
- Qt发送HTTP请求
- Qt发送HTTP请求
- 使用Https发送请求
- ruby发送http,https请求
- JAVA发送http、https请求
- HttpClient 发送 HTTP、HTTPS 请求
- Python之使用Python发送HTTP请求
- HttpClient 之 发送Https请求
- java 发送http与https请求
- java发送HTTP和HTTPS请求
- C++动态绑定和虚函数表vtable (动态实现原理)
- php源码之路第八章第一节 (线程,进程和并发)
- Servlet-过滤器
- JavaScript异步加载
- thinkpad 开机进入dois快捷键
- Qt 之 使用 https:// 发送 HTTP请求
- hibernate--博客
- PAT:两个有序链表序列的合并(Java实现)
- 约瑟夫环
- QT之灰色头像(类似QQ离线头像)
- Poj_2262 Goldbach's Conjecture(筛法求素数)
- oracle数据库常用操作语句
- 看过的算法题(未亲自实现)
- Oracle数据库生成UUID