Retrofit 是什么

Android 开发中,从原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient ,再到对前面这些网络基础框架的封装,比如 VolleyAsync Http Client ,Http 相关开源框架的选择还是很多的,其中由著名的 Square 公司开源的 Retrofit 更是以其简易的接口配置、强大的扩展支持、优雅的代码结构受到大家的追捧。也正是由于 Square 家的框架一如既往的简洁优雅。

初识 Retrofit

单从 Retrofit 这个单词,你似乎看不出它究竟是干嘛的,当然,我也看不出来 :)逃。。

Retrofitting refers to the addition of new technology or features to older systems.

–From Wikipedia

于是我们就明白了,冠以 Retrofit 这个名字的这个家伙,应该是某某某的 『Plus』 版本了。

Retrofit 概览

Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装。注意这里并没有说它是网络请求框架,主要原因在于网络请求的工作并不是 Retrofit 来完成的。Retrofit 2.0 开始内置OkHttp 前者专注于接口的封装,后者专注于网络请求的高效。

我们的应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作,在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,后者根据用户的需求对结果进行解析的过程。

讲到这里,你就会发现所谓 Retrofit,其实就是 Retrofitting OkHttp 了。

总结

Retrofit 其实就是针对 OkHttp 进行了另外一层的封装来让 OkHttp 更好的进行编码。

你也可以直接使用 OkHttp 写 Http 请求,但是还是需要你自己进行一些另外的控制。

使用 Retrofit 可以非常简洁的实现调用,具体的请求调用和返回是通过 OkHttp 来实现的。