Android 开发中,从原生的 HttpUrlConnection
到经典的 Apache 的 HttpClient
,再到对前面这些网络基础框架的封装,比如 Volley
、Async 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 来实现的。