这篇文章 主要是对Rxjava- flatMap 做的一个详细代码讲解
//单例
private HttpUtil() {
//拦截器
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
//ok
okHttpClient = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
//添加请求头
SharedPreferences nc = MyApplication.mContext.getSharedPreferences("nc", Context.MODE_PRIVATE);
String userId = nc.getString("userId", null);
String sessionId = nc.getString("sessionId", null);
if (TextUtils.isEmpty(userId) && TextUtils.isEmpty(sessionId)) {
return chain.proceed(chain.request());
} else {
Request build = chain.request().newBuilder()
.addHeader("userId", userId)
.addHeader("sessionId", sessionId)
.build();
return chain.proceed(build);
}
}
})
.build();
//retrofit
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(MyUrlApi.BASE_URL)
.addCallAdapterFactory(RxJavaCallAdapterFactor