网站管理员作用,tomcat做网站并发,金点子创业项目,福田莲花北网站建设目录 1、使用QT通过网络API接口获取网络实时时间 1.1、首先在网上找一个获取实时时间的API接口
1.2、 根据第一步获取的链接来发送请求
1.3、通过connect链接信号与槽
注意的点#xff1a;
2、为什么需要网络实时时间
3、获取本机的实时时间
4、顺带提一句 1、使用QT通过…目录 1、使用QT通过网络API接口获取网络实时时间 1.1、首先在网上找一个获取实时时间的API接口
1.2、 根据第一步获取的链接来发送请求
1.3、通过connect链接信号与槽
注意的点
2、为什么需要网络实时时间
3、获取本机的实时时间
4、顺带提一句 1、使用QT通过网络API接口获取网络实时时间
QString urlStr http://api.k780.com/?applife.timeappkey74655signf0fc1a4e2b7459957de0ddf866ace591formatjson;QUrl url(urlStr);// 创建请求QNetworkRequest request(url);// 发送 GET 请求QNetworkReply *reply networkManager-get(request);// 连接信号槽来处理响应connect(reply, QNetworkReply::finished, []() {// 检查请求是否成功if (reply-error() ! QNetworkReply::NoError) {qDebug() Request failed: reply-errorString();}// 获取返回的 JSON 数据QByteArray responseData reply-readAll();// 解析 JSON 数据QJsonDocument jsonDoc QJsonDocument::fromJson(responseData);if (!jsonDoc.isObject()) {qDebug() Failed to parse JSON;}qDebug() jsonDoc;QJsonObject jsonObject jsonDoc.object();if (jsonObject.contains(datetime_1)) {time jsonObject[datetime_1].toString();qDebug() Real-time time: time;} else {qDebug() Time not found in response;}reply-deleteLater(); // 释放 reply 对象}); 打印的结果 1.1、首先在网上找一个获取实时时间的API接口 列如
北京时间校准接口api - 数据接口 - NowAPI
时间操作[取当前北京时间]免费API - 提供免费接口调用平台 根据第一个为例 第一步网站给的API示例
第二步API链接的参数
第三步API的格式
最终得到一个链接
https://sapi.k780.com/?applife.timeappkey10003signb59bc3ef6191eb9f747dd4e83c99f2a4formatjson 打开链接就可以看见返回了一个json数据包包含了时间的数据标准时间到现在的秒数毫秒数实时时间中文编码的实时时间周数等等... 1.2、 根据第一步获取的链接来发送请求
QString urlStr http://api.k780.com/?applife.timeappkey74655signf0fc1a4e2b7459957de0ddf866ace591formatjson;QUrl url(urlStr);// 创建请求QNetworkRequest request(url);// 发送 GET 请求QNetworkReply *reply networkManager-get(request);
还是根据网站给的 我们采用get请求
1.3、通过connect链接信号与槽 connect(reply, QNetworkReply::finished, []() {// 检查请求是否成功if (reply-error() ! QNetworkReply::NoError) {qDebug() Request failed: reply-errorString();}// 获取返回的 JSON 数据QByteArray responseData reply-readAll();// 解析 JSON 数据QJsonDocument jsonDoc QJsonDocument::fromJson(responseData);if (!jsonDoc.isObject()) {qDebug() Failed to parse JSON;}qDebug() jsonDoc;QJsonObject jsonObject jsonDoc.object();if (jsonObject.contains(datetime_1)) {time jsonObject[datetime_1].toString();qDebug() Real-time time: time;} else {qDebug() Time not found in response;}reply-deleteLater(); // 释放 reply 对象}); 解释一下代码我们直接读取API接口返回的数据
返回的数据是json数据包格式就是直接打开网页看见的样子所以如果我要得到datetime_1这个数据需要自己提取改信号与槽就是在获取与处理得到的json数据包
注意的点
如果获取成功返回的“success”的值为1时间的数据在“result”里面所以我们需要先提取“result”的值再提取”datetime_1“的值
如果获取不成功网络不好或者访问次数到限制了——免费的一小时只能访问200次
“success”的值为0 2、为什么需要网络实时时间 我们知道QT自带有获取本机实时时间的函数所以如果直接调用不是更简单吗
但是我们是QT与嵌入式如果开发板没有自带RTC那么我们用QT的获取本机实时时间获取到的应该是系统装载好的时候的时间往后的时间开发板是不会记录的所以本文介绍的方法适用于没有RTC的开发板
但是也顺便介绍一下获取本机实时时间的方式
3、获取本机的实时时间
NOWTime QDateTime::currentDateTime();// 将时间格式化为字符串QString sendTime NOWTime.toString(yyyy-MM-dd HH:mm:ss); 简单粗暴
第一句获取当前时间的时间戳
第二句将时间戳以yyyy-MM-dd HH:mm:ss的格式存入sendTime这个qstring
4、顺带提一句 往上还有很多TCPNTP的方式个人感觉对我一个小白来说介绍都不是很友好如果是像我一样的小白还是用别人做好的API接口方便