免费天气API,全国天气 JSON API接口,可以获取五天的天气预报

原创 2017年05月27日 16:16:30

稳定高效的天气API接口是很少有的,本站前一段时间开发了一个万年历,需要带天气预报,花了几天功夫,集成和容错处理好对外开放的天气接口。天气接口支持返回  JSON  和  XML  结果。并且可以获取到昨天,以及今天和未来4 天的天气预报。那么下面直接介绍天气预报的接口吧。

天气API详情介绍API 中心http://www.sojson.com/api/weather.html ,下面只介绍下调用方式,然后 用 Java  语言调用演示一下。


天气预报 API 接口 JSON返回

    public static void json() throws Exception{
    	//参数url化
    	String city = java.net.URLEncoder.encode("北京", "utf-8");
    	
    	//拼地址
    	String apiUrl = String.format("http://www.sojson.com/open/api/weather/json.shtml?city=%s",city);
    	//开始请求
    	URL url= new URL(apiUrl);
    	URLConnection open = url.openConnection();
    	InputStream input = open.getInputStream();
    	//这里转换为String,带上包名,怕你们引错包
    	String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
    	//输出
    	System.out.println(result);
    }


天气预报 JSON 返回值:

    {
        "data": {
            "yesterday": {
                "date": "26日星期五",
                "high": "高温 31℃",
                "fx": "南风",
                "low": "低温 17℃",
                "fl": "微风",
                "type": "晴"
            },
            "city": "北京",
            "aqi": "83",
            "forecast": [
                {
                    "date": "27日星期六",
                    "high": "高温 34℃",
                    "fengli": "微风级",
                    "low": "低温 21℃",
                    "fengxiang": "西南风",
                    "type": "晴"
                },
                {
                    "date": "28日星期天",
                    "high": "高温 36℃",
                    "fengli": "3-4级",
                    "low": "低温 22℃",
                    "fengxiang": "北风",
                    "type": "多云"
                },
                {
                    "date": "29日星期一",
                    "high": "高温 29℃",
                    "fengli": "微风级",
                    "low": "低温 18℃",
                    "fengxiang": "东风",
                    "type": "阴"
                },
                {
                    "date": "30日星期二",
                    "high": "高温 30℃",
                    "fengli": "微风级",
                    "low": "低温 18℃",
                    "fengxiang": "南风",
                    "type": "阴"
                },
                {
                    "date": "31日星期三",
                    "high": "高温 32℃",
                    "fengli": "3-4级",
                    "low": "低温 20℃",
                    "fengxiang": "南风",
                    "type": "多云"
                }
            ],
            "ganmao": "各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。",
            "wendu": "27"
        },
        "status": 200,
        "message": "OK"
    }

天气预报 API XML返回方式

    public static void xml() throws Exception{
    	//参数url化
    	String city = java.net.URLEncoder.encode("北京", "utf-8");
    	
    	//拼地址
    	String apiUrl = String.format("http://www.sojson.com/open/api/weather/xml.shtml?city=%s",city);
    	//开始请求
    	URL url= new URL(apiUrl);
    	URLConnection open = url.openConnection();
    	InputStream input = open.getInputStream();
    	//这里转换为String,带上包名,怕你们引错包
    	String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
    	//输出
    	System.out.println(result);
    }


天气预报 XML返回值:

    <?xml version="1.0" encoding="UTF-8"?>
    <resp>
        <city>北京</city>
        <updatetime>13:45</updatetime>
        <wendu>27</wendu>
        <fengli>3级</fengli>
        <shidu>38%</shidu>
        <fengxiang>东风</fengxiang>
        <sunrise_1>04:51</sunrise_1>
        <sunset_1>19:33</sunset_1>
        <sunrise_2></sunrise_2>
        <sunset_2></sunset_2>
        <environment>
            <aqi>83</aqi>
            <pm25>61</pm25>
            <suggest>极少数敏感人群应减少户外活动</suggest>
            <quality>良</quality>
            <MajorPollutants>颗粒物(PM2.5)</MajorPollutants>
            <o3>148</o3>
            <co>1</co>
            <pm10>106</pm10>
            <so2>27</so2>
            <no2>47</no2>
            <time>13:00:00</time>
        </environment>
        <yesterday>
            <date_1>26日星期五</date_1>
            <high_1>高温 31℃</high_1>
            <low_1>低温 17℃</low_1>
            <day_1>
                <type_1>晴</type_1>
                <fx_1>南风</fx_1>
                <fl_1>微风</fl_1>
            </day_1>
            <night_1>
                <type_1>晴</type_1>
                <fx_1>北风</fx_1>
                <fl_1>微风</fl_1>
            </night_1>
        </yesterday>
        <forecast>
            <weather>
                <date>27日星期六</date>
                <high>高温 34℃</high>
                <low>低温 21℃</low>
                <day>
                    <type>晴</type>
                    <fengxiang>西南风</fengxiang>
                    <fengli>微风级</fengli>
                </day>
                <night>
                    <type>晴</type>
                    <fengxiang>北风</fengxiang>
                    <fengli>微风级</fengli>
                </night>
            </weather>
            <weather>
                <date>28日星期天</date>
                <high>高温 36℃</high>
                <low>低温 22℃</low>
                <day>
                    <type>多云</type>
                    <fengxiang>北风</fengxiang>
                    <fengli>3-4级</fengli>
                </day>
                <night>
                    <type>阴</type>
                    <fengxiang>东北风</fengxiang>
                    <fengli>微风级</fengli>
                </night>
            </weather>
            <weather>
                <date>29日星期一</date>
                <high>高温 29℃</high>
                <low>低温 18℃</low>
                <day>
                    <type>阴</type>
                    <fengxiang>东风</fengxiang>
                    <fengli>微风级</fengli>
                </day>
                <night>
                    <type>阵雨</type>
                    <fengxiang>南风</fengxiang>
                    <fengli>微风级</fengli>
                </night>
            </weather>
            <weather>
                <date>30日星期二</date>
                <high>高温 30℃</high>
                <low>低温 18℃</low>
                <day>
                    <type>阴</type>
                    <fengxiang>南风</fengxiang>
                    <fengli>微风级</fengli>
                </day>
                <night>
                    <type>多云</type>
                    <fengxiang>北风</fengxiang>
                    <fengli>微风级</fengli>
                </night>
            </weather>
            <weather>
                <date>31日星期三</date>
                <high>高温 32℃</high>
                <low>低温 20℃</low>
                <day>
                    <type>多云</type>
                    <fengxiang>南风</fengxiang>
                    <fengli>3-4级</fengli>
                </day>
                <night>
                    <type>多云</type>
                    <fengxiang>南风</fengxiang>
                    <fengli>3-4级</fengli>
                </night>
            </weather>
        </forecast>
        <zhishus>
            <zhishu>
                <name>晨练指数</name>
                <value>适宜</value>
                <detail>天气不错,空气清新,是您晨练的大好时机,建议不同年龄段的人们积极参加户外健身活动。</detail>
            </zhishu>
            <zhishu>
                <name>舒适度</name>
                <value>很不舒适</value>
                <detail>白天天气晴好,但烈日炎炎会使您会感到很热,很不舒适。</detail>
            </zhishu>
            <zhishu>
                <name>穿衣指数</name>
                <value>炎热</value>
                <detail>天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。</detail>
            </zhishu>
            <zhishu>
                <name>感冒指数</name>
                <value>少发</value>
                <detail>各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。</detail>
            </zhishu>
            <zhishu>
                <name>晾晒指数</name>
                <value>极适宜</value>
                <detail>天气不错,极适宜晾晒。抓紧时机把久未见阳光的衣物搬出来晒晒太阳吧!</detail>
            </zhishu>
            <zhishu>
                <name>旅游指数</name>
                <value>较适宜</value>
                <detail>天气较好,感觉有点热,不过有微风伴您一路同行,还是较适宜旅游的,外出请注意防晒哦!</detail>
            </zhishu>
            <zhishu>
                <name>紫外线强度</name>
                <value>很强</value>
                <detail>紫外线辐射极强,建议涂擦SPF20以上、PA++的防晒护肤品,尽量避免暴露于日光下。</detail>
            </zhishu>
            <zhishu>
                <name>洗车指数</name>
                <value>较适宜</value>
                <detail>较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。</detail>
            </zhishu>
            <zhishu>
                <name>运动指数</name>
                <value>较适宜</value>
                <detail>天气较好,户外运动请注意防晒。推荐您进行室内运动。</detail>
            </zhishu>
            <zhishu>
                <name>约会指数</name>
                <value>较不适宜</value>
                <detail>天气较热,建议尽量不要去室外约会,如果外出,请您挑选荫凉的地点。</detail>
            </zhishu>
            <zhishu>
                <name>雨伞指数</name>
                <value>不带伞</value>
                <detail>天气较好,您在出门的时候无须带雨伞。</detail>
            </zhishu>
        </zhishus>
    </resp>
    <!-- 10.10.162.42(10.10.162.42):38553 ; 10.10.156.163:8080 -->

注意的一点就是,参数中文要转码。要url转码。  Java  如下:

    //参数url化
    String city = java.net.URLEncoder.encode("北京", "utf-8");

还有一点就是,编码为UTF-8

本站使用的Demo,是在万年历功能使用,下面是截图。

万年历:http://www.sojson.com/time/wannianli.html



相关文章推荐

腾讯天气预报接口pm25.in

城市ID: http://mat1.gtimg.com/weather/index2014/wtData_v2.js 天气: http://weather.gtimg.cn/...

真正的中国天气api接口xml,json(求加精) ...

我只想说现在网上那几个api完全坑爹有木有??? 官方的申请不来有木有,还有收费有木有?? 咱这种菜鸟只能用免费的了!!!! http://m.weather.c...

免费天气API接口,全国天气免费接口,2017年5月测试OK

天气API接口说明 天气API接口稳定的确实没有,除非是天气官方提供的, 但是我观察了下,要是合作伙伴才有开放的可能。 其他的,例如:百度 APIStore、一些同学在其他网站上抓包下来的接口,以...

RxJava 在Android中的应用(一)

RxJava 在Android中的应用 RxJava 是什么, 能解决什么问题 对比其他技术理解为什么要选择RxJava RxJava的相关API RxJava在Android中的典型使用场景 RxJ...

android imeAction 的使用(改变软件键盘回车键的功能与显示文字)

额,怎么说呢。这是我的第一篇博客。 发现写在本子上容易遗漏。所以把平时学的东西儿一点点搬到blog上来,方便自己以后复习与整理知识。 第一篇就拿这个imeAction练练手好了。   在许多app中...

开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)

国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/d...

开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)

国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/d...

开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)

国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/d...
  • enuola
  • enuola
  • 2012年08月24日 15:07
  • 28194

开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)

国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/d...

开源免费天气预报接口API以及全国所有地区代码!

国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.co...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:免费天气API,全国天气 JSON API接口,可以获取五天的天气预报
举报原因:
原因补充:

(最多只允许输入30个字)