使用聚合数据的API
聚合数据地址:https://www.juhe.cn/
在数据服务->生活常用->全国天气预报,申请天气预报的API使用的KEY
保存请求示例的地址,把您申请的KEY替换成自己申请的KEY,
Key获取方法,在个人中心中找到我的数据,在全国天气预报的上方的AppKey就是我们需要的KEY,将这个值保存下来
打开Android Studio创建好项目,就来安装我们需要用到的框架
记住是贼几把牛逼的开源框架(okhttputils,阿里巴巴的fastjson,这里的okhttputils需要依赖okio)
okhttputils:implementation 'com.zhy:okhttputils:2.6.2' 用于网络请求
okio:implementation 'com.squareup.okio:okio:1.11.0' 网络请求依赖
fastjson:implementation 'com.alibaba:fastjson:1.1.54.android' 解析JSON数据
安装方式:把目录浏览切换成Project,在app的build.gradle中的dependencies大花括号导入这几个框架
我们还要在安装一个插件GsonFormat,安装方式在下图:(我这里已经安装过了,显示的是Uninstall,如果没有安装显示的是绿色的背景install)
可能在安装的时候也可能会搜索不到这插件,可以可以去百度下,百度上很详细
安装完成后会提示重启Android Studio,重启就可以了。
因为这里解析JSON数据的方式都一样的,因为时间关系,我这里只写一个获取城市名称的例子
这里我们需要创建4个JAVA类文件:CONFIG、JsonBean、MainActivity、MyApplication(MainActivity是创建项目不修改文件名默认的)
避免以后修改请求URL地址不方便这里我们创建一个CONFIG的JAVA类
URl中cityname=到&中间的代码是城市的名称,可以自己修改
这里的URL是我上面所说的请求的地址就是那个地址加你申请KEY值
创建MyApplication来配置okHttpClient:
创建了MyApplication文件后一定要记得在AndroidManifest.xml添加,添加网络访问权限:
还需要一个JsonBean这个是用来解析接受到的Json数据的
创建好以后首先通过浏览器访问请求的URL地址:
访问后浏览器会返回关于这个城市的天气状况和一些其他的建议
这是复制这些返回的数据:
打开创建的JsonBean文件把鼠标放到花括号的中间位置,按ctrl+n键:弹出
在弹出的对话框中点击底部的setting按钮弹出:
在Convert Library中选择Fastjson,因为下载的框架就是Fastjson,点击ok,返回到这界面,把在浏览器复制的json数据粘贴到框框中点击ok
这个时候就会自动生成代码
来到MainActivity中:
添加initData方法,并在onCreate方法中调用
onError是在联网不成功的状态下执行的
onResponse是在联网成功的状态下执行的
因为我在 onResponse中添加了输出Log,所以当程序执行并成功访问到网络是,会返回服务端返回的数据保存在response中,
当我们的程序执行成功时应该在Logcat中打印返回的数据
看这样就代表访问成功:
下面我就开始解析返回=的json数据了
创建processData(String json)方法,在onResponse中调用
这里的cityName是一个字符串类型,因为getCity返回的是字符串类型
JsonBean JsonBean = JSON.paresObject(json,JsonBean.class); 则是通过JsonBean来解析
在Log.d("TT","城市名:" + cityName); 则是在获取到的城市名在Logcat打印出来
执行下程序:
这样就把城市名称获取出来了,获取其他的数据,同理。
注:如博客内容有错误,请联系博客更改。