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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前期后期

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值