版权声明:本文为博主原创文章,未经博主允许不得转载。 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,那么我们重点分析的就只有两步:
- Retrofit中元素是如何初始化的
- 通过反射生成httpInter对象过程
Retrofit初始化过程:
final okhttp3.Call.Factory callFactory;//OkHttpClient
final HttpUrl baseUrl;//基本url
final List<Converter.Factory> converterFactories;//转换工厂:例子中为GsonConverterFactory
final List<CallAdapter.Factory> callAdapterFactories;//呼叫工厂适配器
这里我们可以自己控制的只有这几个