Qt中http协议的使用
http属于应用层的协议,专用于Web网络,包含不加密的http协议和加密的https,https在http的基础上在传输层加了TLS加密层。
http客户端和服务器的通信是通过请求来实现的,http请求分为get和post请求,Qt中提供了支持http传输相关的类。
http请求对象 --------- QNetworkRequest
发送请求通过管理对象 ------- QNetworkAccessManager
http服务器收到请求后应答,QNetworkAccessManager会触发finished信号
信号中带有QNetworkReplay的参数
Qt默认不支持https,需要手动安装openssl库
安装openssl,安装完成之后安装目录如下
将以上两个库拷贝到Qt安装目录的库文件夹(QT的里的动态库.so结尾的)
在www.nowapi.com 注册一个账号,开通天气免费API
将连接中的appkey和sign换成自己账号的数据
Qt中json字符串的解析
json是一个带格式的字符串,用大括号包括,大括号中是key-value的组合,可以嵌套(value可以是json字符串)。Qt提供了QJson类来处理json字符串,用法如下:
1.通过json字符串构造json文本对象
QJsonDocument doc = QJsonDocument::fromJson(json字符串,错误信息);
2.将json文本对象转换成json对象
QJsonObject obj = doc.object();
3.在json对象中根据key获取value
obj.value("key").toString();//转字符串
obj.value("key").toObject();//转json
QJsonArray arr = obj.value("key").toArray();//转数组
arr.at(0) =====> QJsonObject
http获取图片
通过QPixmap类的成员函数loadFromData从请求返回的数据中构造QPixmap对象
图片要放到上去显示QPixmap