android rxjava2 简书,Android Retrofit+rxjava2封装使用(多组件开发)

这个博客介绍了如何使用单例模式实现一个Retrofit管理器,用于缓存和获取Retrofit实例,设置默认超时时间,并提供了创建Retrofit实例的方法,包括OkHttpClient的配置和添加拦截器。此外,还展示了如何根据业务接口获取对应的Retrofit服务。
摘要由CSDN通过智能技术生成

public class RetrofitManger {

/**

* 保存一个retrofit的实例,通过(baseUrl来获取)

*/

private HashMapmRetrofitHashMap =new HashMap<>();

private static final int DEFAULT_MILLISECONDS =10;//默认的超时时间

/**

* 内部类单例设计模式

*/

private RetrofitManger() {

}

private static class RetrofitMangerInstance {

private final static RetrofitMangerRETROFIT_MANGER =new RetrofitManger();

}

public static RetrofitManger getInstance() {

return RetrofitMangerInstance.RETROFIT_MANGER;

}

private Retrofit getRetrofit(String baseUrl) {

Retrofit retrofit;

if (mRetrofitHashMap.containsKey(baseUrl)) {

retrofit =mRetrofitHashMap.get(baseUrl);

}else {

retrofit = createRetrofit(baseUrl);

mRetrofitHashMap.put(baseUrl,retrofit);

}

return retrofit;

}

/**

* @Params :创建Retrofit

* @Author :zhaohuiming

* @Date :2019/12/10

*/

private Retrofit createRetrofit(String baseUrl) {

OkHttpClient httpClient =new OkHttpClient().newBuilder()

.readTimeout(DEFAULT_MILLISECONDS, TimeUnit.SECONDS)//设置读取超时时间

.connectTimeout(DEFAULT_MILLISECONDS, TimeUnit.SECONDS)//设置请求超时时间

.writeTimeout(DEFAULT_MILLISECONDS, TimeUnit.SECONDS)//设置写入超时时间

//.addInterceptor(new HeadersInterceptor())//添加公共头信息

//.addInterceptor(new LogInterceptor())//添加打印拦截器

.retryOnConnectionFailure(false)//设置出现错误进行重新连接。

.build();

return new Retrofit.Builder()

.client(httpClient)

.baseUrl(baseUrl)

.addCallAdapterFactory(RxJava2CallAdapterFactory.create())

.addConverterFactory(GsonConverterFactory.create())

.build();

}

/**

* 根据各业务接口  获取不同的retrofit service接口对象

*/

public T getRetrofitService(Class tClass) {

return getRetrofit(BaseApi.getBaseUrl()).create(tClass);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值