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获取天气信息的更多相关文章

  1. 高德地图API获取天气

    1.建立行政区规划清单表 use edw; drop table if exists dim_prov_city_adcode; create table if not exists dim_prov ...

  2. 在C#中调用API获取网络信息和流量

    原文 在C#中调用API获取网络信息和流量 最近一项目中要求显示网络流量,而且必须使用C#. 事实上,调用 IpHlpApi.dll 的 GetIfTable API 可以轻易获得网络信息和网络流量. ...

  3. C# 通过豆瓣网络编程API获取图书信息

    这篇文章主要是关于如何通过豆瓣API获取信息的书籍,起初,我看到了原来的想法的内容是"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源代码,再通过正則 ...

  4. PHP通过ZABBIX API获取主机信息 VS 直接从数据库获取主机信息

    最近项目需要获取linux主机的一些信息,如CPU使用率,内存使用情况等.由于我们本身就装了zabbix系统,所以我只用知道如何获取信息即可,总结有两种方法可以获取. 一.通过ZABBIX API获取 ...

  5. 根据新浪天气API获取各地天气状况(Java实现)

    原文出自 参考网址(重要) http://blog.csdn.net/cyxlzzs/article/details/7602469  新浪 http://blog.csdn.net/l_ch_g/a ...

  6. 通过API获取统计信息时报Access denied错误处理记录

    通过API获取HDFS统计信息时报Access denied错误信息,错误信息如下: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.s ...

  7. 免费天气API,天气JSON API,不限次数获取十五天的天气预报

    紧急情况说明: 禁用IP列表: 39.104.69.*(原因39.104.69.6 在2018年10月的 17~20日 排行为top 1,每天几十万次.) 47.98.211.* (原因47.98.2 ...

  8. 获取新浪天气api显示天气情况(转)

    直接上一个html的demo <!doctype html> <html class="no-js fixed-layout"> <head> ...

  9. Java调用yahoo!API获取天气数据

    先把代码复制上来,以后再做补充 package com.weather.test; import java.io.InputStream; import java.net.URL; import ja ...

随机推荐

  1. java中abstract详解

    Abstract(抽象)可以修饰类.方法 如果将一个类设置为abstract,则此类必须被继承使用.此类不可生成对象,必须被继承使用. Abstract可以将子类的共性最大限度的抽取出来,放在父类中, ...

  2. Servers

    Servers¶ Server interface. class novaclient.v1_1.servers.Server(manager, info, loaded=False) Bases: ...

  3. WinForm DataGridView分页功能

    WinForm 里面的DataGridView不像WebForm里面的GridView那样有自带的分页功能,需要自己写代码来实现分页,效果如下图: 分页控件  .CS: 1 using System; ...

  4. IntelliJ IDEA - 注释模板

    IntelliJ IDEA 注释模板自定义的方式有许多,如Live Templates和File and Code Templates,我比较喜欢File and Code Templates,在新建 ...

  5. Android自动化学习笔记之MonkeyRunner:MonkeyRunner的录制和回放

    ---------------------------------------------------------------------------------------------------- ...

  6. oracle安装不容易啊

    oracle 配置方面,电脑端使用的是ORALE 10G 64位,PLSQL DEVELOPER使用32位,ORACLE CLIENT使用11.5版本.之前一直因为ORACLE 使用32位,导致在电脑 ...

  7. angularJS全选功能实现

    最近在做的一个项目要增加全选和反选功能,之前只做过JQ版的全选和反选. 实现效果: 1.点击全选checkbox可以切换全选和全部清空 2.点击列表中的checkbox,当全部选中时全选选中 3.在全 ...

  8. hibernate复合主键

    需要用到实体类Role的主键和Menu的主键结合起来作为实体类RoleMenu的主键,那么通过Hibernate具体实现如下: RoleMenu实体类:(注意该实体类需要实现Serializable接 ...

  9. Apache日志分析

    Apache日志统计举例 加些来了解一下如何统计Apache的访问日志,一般可以用tail命令来实时查看日志文件变化,但是各种的应用系统中的日志会非常复杂,一堆长度超过你浏览极限的日志出现在你眼前时, ...

  10. 我刚知道的WAP app中meta的属性

    之前我一直做的都是WEB前端开发,来北京以后面试了一个移动前端开发,WAP前端开发. 其实在原来公司的时候也做过这方面的开发,可面试的时候面试官问我,要想强制让文档与设备的宽度保持1:1,mate标签 ...