Retrofit源码分析之流程分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangshuaionline/article/details/89156445

本篇承接 Retrofit简单使用

Retrofit底层还是okhttp3,但是对比okhttp3简单实用及源码分析(一)可以看出来,retrofit不需要进行okhttp3的配置,并且retrofit引入了GsonConverterFactory,简化了json解析过程,具体的下面分析。

配置Retrofit:

private httpInter Createhttp(){
        String API_BASE_URL = "。。。";
        //建造者模式创建
        Retrofit.Builder builder = new Retrofit.Builder()
        				//添加基础url(一般为域名)
                        .baseUrl(API_BASE_URL)
                        //添加转换器
                        .addConverterFactory(GsonConverterFactory.create());
        //创建Retrofit对象
        Retrofit retrofit = builder.build();
        //创建接口定义api实现类(反射)
        return retrofit.create(httpInter.class);
}
public interface httpInter {
    	@GET("api/v1/search-hot")
    	Call<List<String>> getSearchHot();
}

由于Retrofit底层用的是okhttp,那么我们重点分析的就只有两步:

  1. Retrofit中元素是如何初始化的
  2. 通过反射生成httpInter对象过程

Retrofit初始化过程:

final okhttp3.Call.Factory callFactory;//OkHttpClient
final HttpUrl baseUrl;//基本url
final List<Converter.Factory> converterFactories;//转换工厂:例子中为GsonConverterFactory
final List<CallAdapter.Factory> callAdapterFactories;//呼叫工厂适配器

这里我们可以自己控制的只有这几个

通过反射生成httpinter过程:

猜你喜欢

转载自blog.csdn.net/yangshuaionline/article/details/89156445