QT C++ TCP Socket 请求心知天气
2023-12-27 20:29:23
相关连接
代码部分
头文件
#include <QtNetwork>
#include <QNetworkAccessManager>
#include <QDebug>
#include <QJsonValue>
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonDocument>
具体实现
要注意的是心知天气接收的数据应该是Utf8
//天气请求
QString weatherReq = 你的请求连接;
//创建天气Socket对象
QTcpSocket *weatherSocket= new QTcpSocket(this);
//连接服务器
weatherSocket->connectToHost("api.seniverse.com",80);
//等待连接
if(weatherSocket->waitForConnected())
bool isWeatherServerConnect = true;
//发送请求
weatherSocket->write(weatherReq.toUtf8());
//获取数据 解析json内容
connect(weatherSocket,&QTcpSocket::readyRead,[=]()
{
QByteArray text = weatherSocket->readAll();//读取所有的数据
QJsonObject json = QJsonDocument::fromJson(text).object();//获取json 源码
if(json.find("results")!=json.end())
{
QString temp = json["results"].toArray()[0].toObject()["now"].toObject()["temperature"].toString();//获取温度
QString weather = json["results"].toArray()[0].toObject()["now"].toObject()["text"].toString();//获取天气
QString code =json["results"].toArray()[0].toObject()["now"].toObject()["code"].toString();//获取现在天气的图标信号
}
});
文章来源:https://blog.csdn.net/weixin_52604835/article/details/135252928
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!