当前位置: 首页 > news >正文

池州网站建设公司手机网站建设公司报价

池州网站建设公司,手机网站建设公司报价,郑州低价网站制作,威海高新园区建设运营有限公司网站前言: 在写一个天气预报模块时,需要一个定位功能,在网上翻来翻去才找着,放在这里留着回顾下,也帮下有需要的人 正文: 一开始我想着直接调用百度地图的API来定位, 然后我就想先获取本机IP的方…

前言:

在写一个天气预报模块时,需要一个定位功能,在网上翻来翻去才找着,放在这里留着回顾下,也帮下有需要的人

正文:

  1. 一开始我想着直接调用百度地图的API来定位,
    在这里插入图片描述

  2. 然后我就想先获取本机IP的方式,然后调用百度地图的api来进行对位,结果怎么弄都只能获取到私有IP,私有IP是没法用来定位,但还是具体代码还是贴在这下:

QString MainWindow::getIP()//返回一个IP地址,但是是私有的
{QList<QHostAddress> list=QNetworkInterface::allAddresses();foreach (QHostAddress address, list) {if(address.protocol()==QAbstractSocket::IPv4Protocol)return address.toString();}return "0.0.0.0";
}
  1. 重点来了,我找到了一个可以获取公有IP和当前用户所在市的API,http://whois.pconline.com.cn/ipJson.jsp?json=true,调用这个API,就可以了
  • 要调用之前,要写一个类去存放(拆解)返回JSON数组,很简单,毕竟这个JSON数组的内容很少
#include <QObject.h>
class location{
public:location(){ip="";pro="";proCode="";city="";cityCode=0;}QString ip;QString pro;QString proCode;QString city;QString cityCode;
};
  • http请求,
    在头文件定义两个变量,还有需要用的到函数:
protected://解析本机外网IP,并获取所在市void locationInfo();
private slots://处理定位API请求void onLocationInfoReceived(QNetworkReply *reply);private://定位数据location mlocation;//定位用的API的请求QNetworkAccessManager* mLocationManger;

放在在构造函数:

    //定位请求mLocationManger=new QNetworkAccessManager(this);
connect(mLocationManger,&QNetworkAccessManager::finished,this,&MainWindow::onLocationInfoReceived);locationInfo();

void MainWindow::locationInfo()
{QUrl url("http://whois.pconline.com.cn/ipJson.jsp?json=true");mLocationManger->get(QNetworkRequest(url));
}
void MainWindow::onLocationInfoReceived(QNetworkReply *reply)
{if (reply->error() == QNetworkReply::NoError) {QString data = QString::fromLocal8Bit(reply->readAll());QJsonDocument jsonDocument = QJsonDocument::fromJson(data.toUtf8());QJsonObject jsonObject = jsonDocument.object();qDebug()<<"read all:"<<jsonObject;mlocation.ip = jsonObject.value("ip").toString();mlocation.pro = jsonObject.value("pro").toString();mlocation.proCode = jsonObject.value("proCode").toString();mlocation.city = jsonObject.value("city").toString();mlocation.cityCode = jsonObject.value("cityCode").toString();} else {qDebug() << "Location request error: " << reply->errorString();}qDebug()<<mlocation.city;//请求天气信息getWeatherInfo(mlocation.city);reply->deleteLater();//deleteLater 是 Qt 框架中的一个方法,用于在对象的生命周期结束时安全地删除对象
}
http://www.laogonggong.com/news/57228.html

相关文章:

  • 优秀个人网站推荐网站开发运营推广叫什么
  • 我的网站没备案怎么做淘宝客推广服务器搭建网站步骤视频
  • 京山网站设计公司注册地址和实际不一样可以吗
  • DW做网站入门步骤教学如何把旅行社网站做的好看
  • 门户网站 建设 通知seo知识点
  • 如何提高网站访客数学生个人网页制作图片
  • 手机网站 优化wordpress倒序阅读
  • 创建站点的步骤网站总体设计
  • 网站欢迎页模板洛阳东翔科技做的网站
  • 网站建站公司官网做网站应该会什么问题
  • 在线做logo印章网站quercus wordpress
  • 做网站有哪些类型网页在线生成器
  • 专业做政法ppt的网站wordpress lnmp1.4
  • php网站链接支付宝中国建设教育协会培训报名网站
  • 怎样制作购物网站 微信转发百度制作企业网站多少钱
  • 模仿淘宝网站东莞市常平东部中心医院
  • 备案号链接工信部网站wordpress产品展示放大镜
  • 视频网站开发策划书网站建立者
  • 简单的网站设计开发北京网站建设技术
  • 帝国cms搭建个人网站公司百度网站怎么做
  • 剑阁县规划和建设局网站南京网站制作网页
  • 长沙建网站企业深圳公司排名前100名
  • 网站界面设计教程中科网站建设
  • 贵州高端网站建设免费的seo网站膝
  • 教学设计的网站wordpress lofter
  • 惠州市+网站开发公司庆云县建设局网站
  • 中国商标买卖网站广告设计软件ai
  • 哪个网站可以接程序项目来做网站建设胡菘
  • 网站服务器维护方案wordpress 编程语言
  • 承德网站建设公司网站如何做社群