



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现在,Android应用程序中集成第三方API已十分流行。应用程序都有自己的网络操作和缓存处理机制,但是大部分比较脆弱,没有针对网络糟糕情况进行优化。感谢Square lnc这家有创新精神的公司,将信用卡商业交易带到手机上。现在有了一系列高质量开源库,支持在Android应用程序中集成。做什么,如何做?现在,我们要依次学习使用Retrofit、OKHttp和GSON,简单快速的集成REST API。使用这个组合,我们需要从Twitch.tv下载并解析一些数据。跟着下面的步骤可以在几分钟内,不用写繁琐的模板代码,完成大部分的REST API集成。学习RetrofitRetrofit简化了从Web API下载数据,解析成普通的Java对象(POJO)。例如,要从Github 上下载用户仓库的信息,你只需要编写下面的几行:12GET(/users/user/repos)List listRepos(Path(user) String user);另外,你需要创建仓库信息类和数据类型。这些代码也可以自动生成,下面会介绍如何自动生成。整个过程很简单,类似发送一次有参数的请求或发送POST或HEAD。如何连接不同类型的API,请查看说明文当。Retrofit的特性之一可以将处理逻辑添加到请求和响应中。你可以添加数据到http请求头部,也可以拦截验证失败的响应重定向到登录界面。OKHttpOKHttp是Android版Http客户端。非常高效,支持SPDY、连接池、GZIP和 HTTP 缓存。默认情况下,OKHttp会自动处理常见的网络问题,像二次连接、SSL的握手问题。如果你的应用程序中集成了OKHttp,Retrofit默认会使用OKHttp处理其他网络层请求。GSONGSON是将JSON解析成POJO的Java库。GSON也可以将POJO解析成JSON。在Android中,数据对象存储在SharePreference更加方便。要使用GSON,首先需要创建相应的POJO数据,再用GSON解析为POJO对象。解析过程简单且非常高效。需要了解如何创建可以被GSON解析的POJO对象,请查看说明文档。Retrofit使用GSON解析JSON数据。开始Coding添加库文件到工程1. 下载Retrofit、OKHttp、GSON库文件。2. 逐个添加jar文件到你的工程中。3. 如果使用Android Studio,可以使用gradle同步这个工程。查找或者编写API你可能已有一份API,如果你还在寻找API目录,我推荐ProgrammableWeb。在这个教程中,我们会解析Twitch.Tv的数据流。请求格式请参考说明手册。Twicht.tv请求数据流的JSON格式:http:/api.justin.tv/api/stream/list.json展示输出展示一些API返回的数据,下面的示例是由于是一个GET请求,只能在浏览器中运行,返回数据如下:1broadcast_part: 4, featured: true, channel_subscription: true, audio_codec: uncompressed, id: 6640712464, category: gaming, title: Fnatic xPeke, Normals(ranked down) on smurf, geo: DE, video_height: 1080, site_count: 8014, embed_enabled: true, channel: subcategory: null, producer: true, image_url_huge: /jtv_user_pictures/xpeke-profile_image-a182a5fe5a8f239b-600x600.jpeg, timezone: Europe/Madrid, screen_cap_url_huge: “http:/static创建POJO这部分很有趣,用我们获取到的数据自动创建对应的POJO。使用jsonschema2pojo,导入包名、类名和JSON数据,保存为私有类型。示例中展示的构造器无法使用,因为JSON数据的根元素是个数组,不是对象。所以我只贴出了数组的第一个元素。展示相关的图片示例。集成POJOs将自动产生的POJOs粘贴到工程中就可以了。在我的示例工程中,他们在models包中。使用Retrofit下载(解析)API创建REST Adapter创建Adapter,类似设置endPoint。123RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(http:/api.justin.tv/api).build();定义API接口为需要连接的endPoint定义接口。下面示例中,使用limit和offset,这两个参数用来控制请求数据位置和大小。详细说明请参考API文档。123public interface TwitchTvApiInterface GET(/stream/list.json)void getStreams(Query(limit) int limit, Query(offset) int offset, Callback callback);你可能会注意到,我们期望返回的是一组JustinTvStreamData对象,也就是我们刚才自动产生的POJO。关于如何定义这个接口的更多信息,请参考Retrofit说明文档。创建Twitch.tv 服务现在我们已经建立了endPoint,定义了需要的接口。下面需要创建Twitch.TV服务,发送请求。1TwitchTvApiInterface twitchTvService = restAdapter.create(TwitchTvApiInterface.class);使用API发送API请求十分简单,只需要使用刚才创建的服务即可。12345678910twitchTvService.getStreams(ITEMS_PER_PAGE, pageNumber * ITEMS_PER_PAGE, new Callback() Overridepublic void success(List justinTvStreamData, Response response) consumeApiData(justinTvStreamData); Overridepublic void failure(RetrofitError retrofitError) consumeApiData(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华为新加坡营销方案分析(3篇)
- 初中安全教育和培训课件
- 内蒙古民居课件
- 化学安全培训资料课件
- 创客百变惊蛰课件教学
- 内科三基三严课件
- 统编版语文一年级上册(2024)第二单元 语文园地二公开课一等奖创新教学设计
- 内燃机润滑系统课件
- 创业英雄课件
- 内河基本安全再有效培训课件
- 检测人员管理办法格式
- 茶百道培训课件
- 2025年食品安全人员在线考试试题及答案
- 多重耐药菌感染患者的护理LP
- 2025-2026学年冀教版(2024)小学数学一年级上册(全册)教学设计(附目录P339)
- 客诉奖惩管理办法
- 2025年度国务院国资委干部教育培训中心招聘(2人)笔试备考试题及答案详解(历年真题)
- 2025司法协理员考试模拟题及答案
- 2025年北京市家庭居室装修工程施工合同
- 事业法人登记管理办法
- 承装修试许可证管理办法
评论
0/150
提交评论