使用小米天气API获取天气信息
1. URL部分
以下url中“%s”代表的是城市Id,比如北京的cityId=101010100;
//获取未来五天预报信息,红色部分信息不需要
WEATHER_DATA_URL_JSON = "http://weatherapi.market.xiaomi.com/wtr-v2/temp/forecast?cityId=%s";
返回信息格式如下:

{
"weatherinfo": {
"city": "北京",
"city_en": "beijing",
"cityid": "101010100",
"date": "",
"date_y": "2014年04月08日",
"fchh": "18",
"fl1": "3-4级转4-5级",
"fl2": "3-4级转小于3级",
"fl3": "小于3级",
"fl4": "小于3级",
"fl5": "小于3级",
"fl6": "微风",
"fx1": "南风转北风",
"fx2": "东北风转无持续风向",
"img1": "", // img信息不需要
"img10": "",
"img11": "",
"img12": "",
"img2": "",
"img3": "",
"img4": "",
"img5": "",
"img6": "",
"img7": "",
"img8": "",
"img9": "",
"img_single": "", //img_title信息不需要
"img_title1": "霾",
"img_title10": "多云",
"img_title11": "晴",
"img_title12": "晴",
"img_title2": "多云",
"img_title3": "晴",
"img_title4": "多云",
"img_title5": "多云",
"img_title6": "阴",
"img_title7": "阴",
"img_title8": "多云",
"img_title9": "晴",
"img_title_single": "",
"index": "较舒适",
"index48": "",
"index48_d": "",
"index48_uv": "",
"index_ag": "极易发",
"index_cl": "不宜",
"index_co": "舒适",
"index_d": "",
"index_ls": "不宜",
"index_tr": "适宜",
"index_uv": "最弱",
"index_xc": "不宜",
"st1": "", //st信息不需要(暂不确定其作用)
"st2": "",
"st3": "",
"st4": "",
"st5": "",
"st6": "",
"temp1": "12℃~28℃",
"temp2": "11℃~18℃",
"temp3": "8℃~18℃",
"temp4": "9℃~22℃",
"temp5": "10℃~22℃",
"temp6": "0℃~0℃",
"tempF1": "", //华氏摄氏度信息不需要
"tempF2": "",
"tempF3": "",
"tempF4": "",
"tempF5": "",
"tempF6": "",
"weather1": "霾转多云",
"weather2": "晴转多云",
"weather3": "多云转阴",
"weather4": "阴转多云",
"weather5": "晴转多云",
"weather6": "晴",
"week": "星期二",
"wind1": "南风转北风",
"wind2": "东北风转无持续风向",
"wind3": "微风",
"wind4": "微风",
"wind5": "微风",
"wind6": "微风"
}
}

//获取实时天气信息
WEATHER_DATA_SK_JSON = "http://weatherapi.market.xiaomi.com/wtr-v2/temp/realtime?cityId=%s";
返回信息格式如下:

{
"weatherinfo": {
"SD": "32%",
"WD": "西南风",
"WS": "2级",
"WSE": "",
"city": "北京",
"cityid": "101010100",
"isRadar": "1",
"radar": "JC_RADAR_AZ9010_JB",
"temp": "23",
"time": "18:35",
"weather": "霾"
}
}

//获取其他指数类天气信息,如pm2.5,二氧化硫含量等,暂时不需要这类信息
WEATHER_AQI_URL_JSON = "http://weatherapi.market.xiaomi.com/wtr/data/aqi?city_id=%s";
返回信息格式如下:

{//不需要
"aqi": {
"city": "北京",
"city_id": "101010100",
"pub_time": "2014-04-08 18:00",
"aqi": "206",
"pm25": "156",
"pm10": "196",
"so2": "47",
"no2": "42",
"src": "中国环境监测总站",
"spot": ""
}
}

获取警告信息
WEATHER_ALERT_URL_JSON = "http://weatherapi.market.xiaomi.com/wtr-v2/temp/alert?cityId=%s";
一般返回为空,且我们暂时用不到这类信息。
2. IP地址和cityId数据库
根据天气设计需求,要实现根据用户的IP地址自动匹配用户所在的当前城市。
首先要根据IP地址获取城市名称,其次通过城市名城获取对应的cityId,最后利用cityId获取对应城市的天气信息。
因此需要两个数据库,包含两张表:
表一: IP地址-->城市名称
表二: 城市名城-->cityId,对应的数据库文件分别是:ip_address_jj_city_name.db和city.db。
3. 数据返回格式极其他
要求数据返回格式为json
使用小米天气API获取天气信息的更多相关文章
- 高德地图API获取天气
1.建立行政区规划清单表 use edw; drop table if exists dim_prov_city_adcode; create table if not exists dim_prov ...
- 在C#中调用API获取网络信息和流量
原文 在C#中调用API获取网络信息和流量 最近一项目中要求显示网络流量,而且必须使用C#. 事实上,调用 IpHlpApi.dll 的 GetIfTable API 可以轻易获得网络信息和网络流量. ...
- C# 通过豆瓣网络编程API获取图书信息
这篇文章主要是关于如何通过豆瓣API获取信息的书籍,起初,我看到了原来的想法的内容是"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源代码,再通过正則 ...
- PHP通过ZABBIX API获取主机信息 VS 直接从数据库获取主机信息
最近项目需要获取linux主机的一些信息,如CPU使用率,内存使用情况等.由于我们本身就装了zabbix系统,所以我只用知道如何获取信息即可,总结有两种方法可以获取. 一.通过ZABBIX API获取 ...
- 根据新浪天气API获取各地天气状况(Java实现)
原文出自 参考网址(重要) http://blog.csdn.net/cyxlzzs/article/details/7602469 新浪 http://blog.csdn.net/l_ch_g/a ...
- 通过API获取统计信息时报Access denied错误处理记录
通过API获取HDFS统计信息时报Access denied错误信息,错误信息如下: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.s ...
- 免费天气API,天气JSON API,不限次数获取十五天的天气预报
紧急情况说明: 禁用IP列表: 39.104.69.*(原因39.104.69.6 在2018年10月的 17~20日 排行为top 1,每天几十万次.) 47.98.211.* (原因47.98.2 ...
- 获取新浪天气api显示天气情况(转)
直接上一个html的demo <!doctype html> <html class="no-js fixed-layout"> <head> ...
- Java调用yahoo!API获取天气数据
先把代码复制上来,以后再做补充 package com.weather.test; import java.io.InputStream; import java.net.URL; import ja ...
随机推荐
- TensorFlow中权重的随机初始化
一开始没看懂stddev是什么参数,找了一下,在tensorflow/python/ops里有random_ops,其中是这么写的: def random_normal(shape, mean=0.0 ...
- c# 变量,对象,静态类型,集合类的线程安全回顾
1.变量的线程安全性与变量的作用域有关. 2.对象 对象是类型的实例 在创建对象时,会单独有内存区域存储对象的属性和方法.所以,一个类型的多个实例,在执行时,只要没有静态变量的参与,应该都是线程安全的 ...
- 解决java compiler level does not match the version of the installed java project facet
在项目目录的.setting文件夹下的org.eclipse.wst.common.project.facet.core.xml中 <installed facet="java&quo ...
- WMSWebServiceExtension 使用,支持压缩
using System;using System.Collections.Generic;using System.IO.Compression;using System.Diagnostics;u ...
- 网页WEB打印控件制作-开放源码
在WEB系统中,打印的确是比较烦人的问题,如果我们能制作一个属于自己的自定义的打印插件,那么我们在后续自定义打印的时候能随心所欲的控制打印,这样的效果对于程序员来说是非常开心的一件事件,本文将自己开发 ...
- ASP.NET程序中 抛出"Thread was being aborted. "异常(转)
Thread was being aborted :中文意思 线程被终止 引用地址:http://support.microsoft.com/default.aspx/kb/312629/EN-US/ ...
- jquery 获取鼠标和元素的坐标点
获取当前鼠标相对img元素的坐标 $('img').mousemove(function(e) { varpositionX=e.pageX-$(this).offset().left; //获取当前 ...
- 2016/9/25编写java实验报告时对synchronized(同步代码块)的一些感悟
通过此次实验,明白了多线程的设置和启动.synchronized代码块的用法.线程的优先级使用方法.知道了那几类资源是线程共享的. 我现在理解的多线程是:实例化一个继承了Thread类或实现了Runn ...
- MySQL 对于千万级的大表要怎么优化?
作者:哈哈链接:https://www.zhihu.com/question/19719997/answer/81930332来源:知乎著作权归作者所有,转载请联系作者获得授权. 第一优化你的sql和 ...
- MySQL之账户管理
MySQL之账户管理 账户管理是MySQL用户管理最基本的内容.包括登录,退出MySQL服务器.创建用户.删除用户.密码管理和权限管理等内容. 其中登录方式非常简单,在这个地址有:http://www ...