自学内容网 自学内容网

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)!