中国气象网 气象数据开放平台 API用法 (Android)

因为要做个天气应用。须要找个天气的API。上网上搜了下都是那几个,并且基本都过时了。百度有个天气API,只是貌似仅仅能提供当天的。网上提到的中国气象接口的文章,大都用的时旧API,有的被封了,有的永远停到了2014年3月24不更新了。

后来找到了中国天气的新接口,已经升级成气象数据开放平台了http://openweather.weather.com.cn/。没有开发人员社区或论坛什么的,仅仅能自己琢磨他的文档了(感觉没人维护。。)。

经过几个疑难点卡住后。总算调通了。

现分享给大家。

1.申请keys

首先注冊账号。然后填资料等审核(还要身份证。

。。)。话说审核真是慢,我等了一个星期才审核通过,之后就有了自己的Key了,这个请求天气数据时会用到。

2.申请服务

审核通过后,就能够去产品中心那申请接口了。眼下有两种:常规气象数据接口与基础气象数据接口。

差别在于常规的比基础的城市多。至于价钱么,不要300/年,不要30/年,如今大优惠仅仅需0/年,常规气象数据接口带回家:P。

3.研读API文档

有JAVA的演示样例代码能够參考,主要包括key加密的内容。能够直接用,其它请求等须要自己写。

请求用get,解析用json,没什么难点,主要是加密这。。。

这个加密之前也没怎么太上心看,结果看晕了,卡了不少时间。

主要加密由public_key与private_key结合,作为key这个參数,一起传递过去。

传递URL格式例如以下:

http://open.weather.com.cn/data/?areaid="areaid"&type="type"&date="date"&appid="appid_six"&key="key"

參数介绍:

areaid:城市地区代码,官方有表格提供。能够考虑用101010100(北京)

type:请求数据的类型:指数:index_f(基础接口);index_v(常规接口); 3天预报:forecast_f(基础接口);forecast_v(常规接口);我用的forecast_v

date:当前时间  格式yyyyMMddHHmm  如201506051423

appid:这是个坑。这块正式请求时,用的是appid的前六位,我在这卡了非常久。。

。仅仅有作为public_key时才用完整的appid,后边会说

key:到了这个复杂的东西了。这块用到三个东西来完毕,首先:

private_key:申请到的那个key

public_key:格式例如以下。与传递的URL类似但不同,其一在于没有key參数,其二在于appid使用的是完整的appid。这非常重要

http://open.weather.com.cn/data/?areaid="areaid"&type="type"&date="date"&appid="appid_full"

然后有个这两个之后,使用提供的java演示样例代码中的standardURLEncoder(public_key。private_key),将公钥和私钥结合为key參数

之后基本就能够收到返回的天气信息了。

4.解析天气信息

返回的json信息就不多说了,官方提供的文档有相应的解释,就是參数都是c1,c2...fa,fb,fc之类的,太不人性化了。

在这遇到的主要问题是。返回的汉子乱码。。

。。

预计可能时因为和server端使用的编码不同,不是utf-8。。

。。。

并且官方啥都没说。。。。。

没办法,我就仅仅能苦逼的一个一个编码尝试,用了好多种方法解码总算是还原为汉字了。方法例如以下:

byte[] converttoBytes = weather.city.getBytes("ISO-8859-1");
			String s1 = new String(converttoBytes);
			System.out.println(s1);
			weather.city = s1;

经过測试,传来的汉字格式竟然是ISO-8859-1的?(此处如理解有错误,请指正)好吧。感觉非常奇葩--!

到这大家基本就都能顺利调通了吧,相信小伙伴都没问题的

项目地址:https://github.com/rsy210/MyWeather

转载请注明出处哈http://blog.csdn.net/lqc1992/article/details/46375567

时间: 2024-08-10 08:53:07

中国气象网 气象数据开放平台 API用法 (Android)的相关文章

中国气象网 气象数据开放平台 API使用方法 (Android)

由于要做个天气应用,需要找个天气的API.上网上搜了下都是那几个,而且基本都过时了.百度有个天气API,不过貌似只能提供当天的.网上提到的中国气象接口的文章,大都用的时旧API,有的被封了,有的永远停到了2014年3月24不更新了. 后来找到了中国天气的新接口,已经升级成气象数据开放平台了http://openweather.weather.com.cn/.没有开发者社区或论坛什么的,只能自己琢磨他的文档了(感觉没人维护..). 经过几个疑难点卡住后,总算调通了.现分享给大家. 1.申请keys

百度AI开放平台- API实战调用

百度AI开放平台- API实战调用 一.      前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-100条左右,不会更多,只会更少.最终的需求是:从这些匹配结果中找到相似度较高的那些条目. 自己编写算法来实现是一个很大的工程,涉及到自然语言处理的一些方面,比较复杂.于是上网搜了搜,发现百度开放平台的自然语言处理可以免费调用,而且每天有10W的调用次数,对我的小项目来说正好满足.但是,在往下翻的时候

新浪微博开放平台API

关于新浪微博开放平台有很多问题,网上文档写的不是很清楚,授权机制把我给难住了 不清楚怎么回事一直报没有权限 EMAIL给开发人员也没回应 偶然尝试到一个方法  States返回了成功 如下代码: 1.在head 引用 <meta property="wb:webmaster" content="8998f19501c5a01c" /> <script src=" http://tjs.sjs.sinajs.cn/open/api/js/w

微博开放平台api使用

前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文章要分享到微博或者其他社交网站中一样,非常方便. 下面就来探秘一番. 1.注册开发者并获取app key 和 app secret 百度很容易找到微博开放平台的入口,登录自己的微博账号,点击账号头像,会提示编辑开发者信息. 可以看到如下的页面,只需要按照提示填写,其中紧急联系人可以填自己,网站无所谓

各开放平台API接口通用 SDK 前言

最近两年一直在做API接口相关的工作,在平时工作中以及网上看到很多刚接触API接口调用的新人一开始会感到很不适应,包括自己刚开始做API接口调用的相关工作时,也是比较抓狂的,所有写一序列文章把之前的工作做个总结,二来写一个通用SDK把之前涉及到的代码封装成类库,以便以后可以更好地使用.三来对一些有需要的朋友,比如刚接触API接口调用的朋友来说,希望可以给他们提供一些帮助,一起交流,共同成长,一起进步. 今天这篇文章主要是谈一下自己的构想,SDK产品的构思,也希望园内的朋友提出自己宝贵的意见,如果

各开放平台API接口通用SDK序列文章 前言

最近两年一直在做API接口相关的工作,在平时工作中以及网上看到很多刚接触API接口调用的新人一开始会感到很不适应,要看的文档一大堆,自己要调用的接口找不着,或都找着了不知道怎么去调用,记得包括自己刚开始做API接口调用的相关工作时,也是比较抓狂的,也是硬着头皮去看各种文档,熟悉代码,在网上不断地去查找资料.所以决定写一序列文章把之前做的API接口相关的工作做个总结,二来写一个通用SDK把之前涉及到的代码封装成类库,以便以后可以更好地使用.就不用再重创轮子了,三来对一些有需要的朋友,比如刚接触AP

浅谈开放平台API接口调用频率控制系统设计

www.qdmm.com/BookReader/1391649,62631917.aspx www.qdmm.com/BookReader/1391649,62631988.aspx www.qdmm.com/BookReader/1391649,62632029.aspx www.qdmm.com/BookReader/1391649,62632094.aspx www.qdmm.com/BookReader/1391649,62632135.aspx www.qdmm.com/BookRea

中国天气网接口类(中国天气预报)

新写的中国天气网api接口类,分享给大家(妈妈再也不用担心我出门被天气君欺负了). 只需修改两个参数($private_key.$appid)即可使用,这两个参数从中国天气网获取,地址是; http://openweather.weather.com.cn/ 以下是类及使用示例 <?php /** * 中国天气网天气API接口类 * 获取中国天气网天气数据,接口申请地址:http://openweather.weather.com.cn/ * Copyright (c) 2014-2015 ht

淘宝开放平台php-sdk测试 获取淘宝商品信息(转)

今天想使用淘宝开放平台的API获取商品详情,可是以前一直没使用过,看起来有点高深莫测,后然看开发入门,一步一步,还真有点感觉了,然后看示例,还真行了,记下来以后参考.其中遇到问题,后然解决了.因为我已经有APPKEY了所以,我使用的是正式环境,大家可以使用测试换进,设置稍微有点区别: 1.下载PHP SDK,下载地址:http://open.taobao.com/doc/detail.htm?spm=0.0.0.21.e7516f&id=34#s1 2.PHP SDK解压后,lotusphp_r