在确定了需要查询的城市对应的ID之后,我们就可以设法像浏览器那样通过一个URL去访问远程服务并获取数据了,随后再对得到的JSON数据进行解析,并映射到实体对象。Android SDK本身提供了访问万维网服务以及解析JSON数据的基本模块,但是使用起来相对复杂。本着“站在巨人的肩膀上”的原则,我们使用更高级的开源项目来简化实现。当前,互联网上存在大量已发布的开源项目。我们选择使用以下的开源项目来分别完成HTTP网络访问和JSON数据解析:
和所有开源项目一样,我们可以直接使用这些项目提供的功能,并且可以对其进行修改。
所谓开源项目,实际上是编写好的功能库,在使用之前必须导入到我们自己的项目中。目前通常是通过Gradle
工具来自动加载这样的程序库。我们只需要在app/build.gradle
脚本文件中进行引用即可。打开这个文件,找到名为dependencies
的块,如下:
在此块内容的末尾添加相应的implementation
语句以导入我们需要的OkHttp
和GSON
两个模块:
随着build.gradle
文件内容的更改,编辑区上方会提示进行同步:
点击Sync Now
,Android Studio会自动下载这两个模块。
另外,为了使我们的App能够访问网络,需要声明网络权限。打开AndroidManifest.xml
文件,在<application>
标签的前面添加android.permission.INTERNET
权限声明:
准备工作完成。下面我们来编写代码,逐步完成天气数据的获取、解析和展示。
本小节改动的文件:
modified: app/build.gradle
modified: app/src/main/AndroidManifest.xml
网友评论