019android初级篇之获取天气信息

本文从http://m.weather.com.cn/获取天气信息。

Android RGB颜色查询对照表

获取城市编号

一级城市列表:

  1. 数据源: http://m.weather.com.cn/data5/city.xm
  2. 得到的数据: 01|北京,02|上海,03|天津,04|重庆,05|黑龙江,06|吉林,07|辽宁,08|内蒙古,09|河北,10|山西,11|陕西,12|山东,13|新疆,14|西藏,15|青海,16|甘肃,17|宁夏,18|河南,19|江苏,20|湖北,21|浙江,22|安徽,23|福建,24|江西,25|湖南,26|贵州,27|四川,28|广东,29|云南,30|广西,31|海南,32|香港,33|澳门,34|台湾

二级城市列表

  1. 数据源,例如广东 http://m.weather.com.cn/data5/city28.xml
  2. 得到的数据 2801|广州,2802|韶关,2803|惠州,2804|梅州,2805|汕头,2806|深圳,2807|珠海,2808|佛山,2809|肇庆,2810|湛江,2811|江门,2812|河源,2813|清远,2814|云浮,2815|潮州,2816|东莞,2817|中山,2818|阳江,2819|揭阳,2820|茂名,2821|汕尾

三级城市列表,

  1. 数据源,例如深圳2806 http://m.weather.com.cn/data5/city2806.xml
  2. 得到的数据: 280601|深圳

由城市三级码得到城市编码

  1. 数据源,如河北.唐山.迁西(ps 哪里的板栗很出名哦) http://m.weather.com.cn/data5/city090507.xml
  2. 城市编码: 090507|101090507 则河北.唐山.迁西的城市编码为101090507

获取城市天气

  1. 今日及未来天气接口【内容最详细】

接口已经停用了,http://m.weather.com.cn/data/101090507.html,需要使用新接口。

有一个新的接口可以使用,不过使用前需要注册,

气象数据开放平台代码示例

  1. 查询今日天气: http://www.weather.com.cn/data/cityinfo/101090507.html

得到数据

{"weatherinfo":{"city":"迁西","cityid":"101090507","temp1":"16℃","temp2":"1℃","weather":"多云","img1":"d1.gif","img2":"n1.gif","ptime":"08:00"}}

相关代码

从Web获取json

String src ="http://www.weather.com.cn/data/cityinfo/101090507.html";

  String getJson(String src) {
        try {
            URL url = new URL(src);
            int lineIndex=0;
            HttpURLConnection httpConnect = (HttpURLConnection) url.openConnection();
            InputStreamReader inputStreamReader = new InputStreamReader(httpConnect.getInputStream());
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

            String line ="";
            String jsonStr = "";
            while((line = bufferedReader.readLine())!=null){
                lineIndex++;
                jsonStr += line;
            }
            Log.e(TAG, jsonStr);
            return jsonStr;

        } catch (IOException e){
            e.printStackTrace();
        }
        return "";
    }

此段代码的返回值,即是json格式的天气信息。

解析json,获得想要信息

String  getWeatherInfo(String json){
    String weatherInfo ="";
    try{
        String filed ="";
        JSONObject obj = new JSONObject(json);
        filed = obj.getString("weatherinfo");
        JSONObject objsub=new JSONObject(filed);
        weatherInfo+="深圳 ,";
        weatherInfo += objsub.getString("temp1") + "--";
        weatherInfo += objsub.getString("temp2") + ", ";
        weatherInfo += objsub.get("weather");

    } catch (Exception e) {
        e.printStackTrace();

    }
    Log.e(TAG,weatherInfo);
    return weatherInfo;
}

参考链接

  1. Android访问中央气象台的天气预报API得到天气数据
  2. 深圳天气
  3. 开放平台接口

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

使用R语言构造投资组合

原作者: 邓一硕 来自: 格物堂 构造投资组合是金融投资分析中历久弥新的问题。多年以来,学界、业界提出诸多对投资组合进行优化的方法。比如,最经典的基于收益率均...

63160
来自专栏有刻

Java 小记 - 时间的处理与探究

时间的处理与日期的格式转换几乎是所有应用的基础职能之一,几乎所有的语言都会为其提供基础类库。作为曾经 .NET 的重度使用者,赖其优雅的语法,特别是可扩展方法这...

19550
来自专栏数据结构与算法

BZOJ1061: [Noi2008]志愿者招募(线性规划)

  申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难

17140
来自专栏码农阿宇

NopCommerce开源项目中很基础但是很实用的C# Helper方法

44430
来自专栏数据科学

股票实时流计算

var element = $('#61901593-c697-4e0e-ad17-c8f2c3fae6ae'); {"model_id": "8629...

19540
来自专栏数据结构与算法

BZOJ1086: [SCOI2005]王室联邦(贪心,分块?)

Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special Judge

8720
来自专栏小樱的经验随笔

BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】

1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 4813  Solv...

36650
来自专栏算法修养

HDU 1875 畅通工程再续(kruskal)

畅通工程再续 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (J...

22840
来自专栏斜述视角

圣经中的校验码

司马迁用近53万字记载了中国上千年的历史,远在中东的犹太人也用类似的篇幅记载了自创世纪以来他们祖先的历史。《圣经》简洁的文风和中国的《史记》颇有相似之处。但是和...

11020
来自专栏海天一树

小朋友学经典算法(14):回溯法和八皇后问题

回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这...

13710

扫码关注云+社区

领取腾讯云代金券