在介绍Android中相关网络框架的时候,我们介绍过了Square公司制作的OkHttp和OKIo。事实上,这两个框架配合使用的时候,基本上已经可以完成大部分的网络业务需求了。不过,学习是永远没有尽头的。这篇博客中,我们将介绍同样由Square公司制作,目前同样流行的另一个网络框架——Retrofit
Retrofit是一个现在比较火的网络请求框架,它的底层是依靠OkHttp实现的。确切的讲,Retrofit是对OkHttp的进一步封装,它的功能更加强大,支持同步和异步、支持多种数据的解析(默认使用Gson),也支持RxJava。
Retrofit的一个优势,就是简洁易用,它通过注解配置网络请求的参数,采用大量的设计模式来简化我们的使用。而且它的拓展性也做的相当的好,Retrofit的功能模块高度封装,高内聚低耦合,我们可以自定义自己想要的组件,比如说我们可以自己选择解析工具而不用默认的Gson,实现了高度的定制性。
除此之外,Retrofit还有诸如性能好,处理速度快,代码简化等优势,给足了理由让我们去尝试使用这款网络请求框架。
在使用Retrofit之前,我们应该先了解它的特性。使用Retrofit的过程中,由于其大量注解开发的形式,我觉得十分类似于Java中的Spring MVC框架,通过标识专属的注解,就可以达到快速的配置和开发,一些Retrofit常见的方法注解如图所示:
之后,我们简单用字符串封装一下要请求的URL。这里封装两个URL,是为了演示分别通过传统方式和RestFul风格提交GET请求的不同效果(现在很少有RestFul风格的免费开放api,所以这里就只能假设一个本地的Tomcat服务器,然后放置一个JSON文件来进行校验),代码如下(服务器URL不固定,根据自己的服务器路径名进行相应修改):
private static final String URL = "https://tcc.taobao.com/cc/json/";
private static final String LOCALURL = "http://10.0.2.2:8080/";
这里的
URL
是一个目前还开放的可以查看电话归属地信息的api,而LOCALURL
则是本地服务器的api。
另外:保证你的URL路径输入到网页的链接栏中是可以访问的!这点很重要,如果你输入的网页是不存在的(即body为null),那么在调用
response.body().string()
时就会报出空指针的异常,如图所示:原创文章 274获赞 79访问量 6万+ 关注 私信 展开阅读全文
作者:赈川