Android Retrofit源码分析(一):Retrofit是什么?和OkHttp的区别是什么?为什么需要他?
目录
一、Retrofit是什么?
Retrofit是一个基于OKHttp的RESTful网络请求框架,由Square公司开源,专为Android和Java提供类型安全的HTTP客户端。它可以理解为OKHttp的加强版,底层封装了OKHttp,主要负责网络请求接口的封装,使得网络请求工作更加简洁高效。
简单来说,Retrofit是OkHttp的封装,但他没有任何的网络请求功能,他只是对请求前,请求后的数据过程进行封装,网络请求功能还是在OkHttp里面。
二、为什么会出现Retrofit?它的作用是什么?
2.1 OkHttp使用上的缺陷
以前我们使用OKHttp发起请求,需要创建request,指定域名等等,每次发送请求,都需要些一大堆的内容。不够简单,不够复用。比如下面的代码,每次发送请求,都需要我们写一次Request。并且请求回来的内容,我们都需要对Response进行解析转换。
val client = OkHttpClient()
//1. 每次请求都需要创建request来指定url,参数等。
val request = Request.Builder()
.url(url)
.build()
var startTime = System.currentTimeMillis()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
val endTime = System.currentTimeMillis()
val duration = endTime - startTime
callback(null, duration)
e.printStackTrace()
}
override fun onResponse(call: Call, response: Response) {
val endTime = System.currentTimeMillis()
val duration = endTime - startTime
if (response.isSuccessful) {
// 2. 读取响应体,并且是Response类型的,还需要进行解析,我们希望能够得到指定类型的bean。
response.body?.string()?.let {
responseBody ->
callback(responseBody, duration)
}
} else {
callback
原文地址:https://blog.csdn.net/qq_40853919/article/details/142351836
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!