实验二 安卓网络编程
一、目的要求
1、理解安卓应用开发中调用web服务的过程和方法。
2、学习在应用开发中使用第三方开发包的过程和方法。
3、掌握json数据的解析方法。
二、实验环境
1、硬件配置:Intel Core i5及以上CPU、内存8G、固态硬盘容量200G以上。
2、软件环境:windows 7及后续版本;JDK 8;Android Studio 3.x及以上版本。
三、实验内容
1、了解下列天气预报相关web服务的有关知识:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
2、在安卓应用中,使用此web服务获取天气预报相关信息
3、获取到的天气信息请在界面中显示出来
四、实验步骤
1.在项目libs文件夹下导入jar包:ksoap2-android-assembly-2.5.2-jar-with-dependencies。
同时在项目的build.gradle中添加:
implementation 'com.squareup.okhttp:okhttp:2.4.0'
2.在网站下载天气示意图,并将其导入工程drawable文件夹中,如图1所示。
图1 将图片文件下载并导入工程
3.观察天气预报相关web服务返回的xml文件数据格式,如图2所示。
图2 观察天气web服务xml文件数据格式
4.编写解析xml文件的工具类XmlParser.java,如图3所示。
图3 解析xml文件代码
5.编写天气信息实体类Weather.java,如图4所示。
图4 信息实体类代码
6.编写查询天气服务类WeatherRemoteService.java,关键代码如图5所示。
图5 查询天气服务类关键代码
7.主Activity中关键代码,如图6所示。
图6 主Activity关键代码
五、实验结果与分析
打开APP,其主界面的部分截图如图7所示。
图7 主界面部分截图
分别查询南京和淮安的天气,查询结果分别如图8和图9所示。
图8 查询南京天气
图9 查询淮安天气
由图8和图9可知,其xml返回的所选图片文件有两个,但里面可能会有所重复。因此需要编写额外的函数来处理这种状况,以显示不同的图片个数,如图10所示。
图10 根据xml返回数据的特点编写相应的处理函数
六、 实验总结
本次实验使我理解了安卓应用开发中调用web服务的过程和方法,学习了在应用开发中使用第三方开发包的过程和方法。
整体来说逻辑是比较明确的,先从官方给出的调用方法获取数据,再编写相关代码解析网站返回的数据并显示在APP中。值得注意的是,我们需根据网站返回数据的格式编写相对应的处理代码。虽然开发过程多次报错,但只要坚信自己的道路是正确的,理论方法无误,一定能成功将APP开发出。
七、思考题
1、应用之间的接口数据除了采用json描述以外,主要还有哪种方式?可以借助什么工具进行解析?
答:还有xml和txt方式。
xml可以借助DOM或SAX解析。DOM解析把整个xml文档加载到内存中,封装形成一棵dom树。其优点是可以增、删、改,缺点是可能内存溢出。SAX解析是逐行读取,事件驱动型解析。其优点是速度快,可以读取大xml文档,缺点是复杂,不能增、删、改。常用的解析工具包有:jaxp,jsoup,jdom,dom4j。
txt可以借助java相关的文件流式操作工具来进行解析。
2、安卓应用开发中进行HTTP编程时,主要会使用哪两类jar包,使用方式有何区别?
答:有OkHttp和HttpClient两种。
(1)OkHttp使用方式:新建OkHttpClient对象,创建请求对象Request,然后向请求对象中设置请求头、请求体等参数,通过OkHttpClient发送请求后得到响应对象Response。
(2)HttpClient使用方式:新建HttpClient对象,然后由请求类型创建请求对象,例如HttpGet(Get请求)和HttpPost(Post请求),在请求对象中设置请求头、请求体等参数,通过HttpClient发送请求后得到响应对象HttpResponse。
|