依赖
日志拦截器
implementation ‘com.squareup.okhttp3:logging-interceptor:3.11.0’
public class RetrofitUtils {
OkHttpClient okHttpClient;
Retrofit retrofit;
private static RetrofitUtils utils;
private RetrofitUtils(){
//2、添加Http日志拦截
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLog());
//3、设置日志拦截等级
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
//4、sd卡缓存路径 名称
File file=new File(Environment.getExternalStorageDirectory(),"interceptor");
okHttpClient = new OkHttpClient.Builder()
//6、日志拦截
.addInterceptor(interceptor)
//5、设置缓存文件和大小
.cache(new Cache(file, 1024*10))
.addNetworkInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request build = chain.request().newBuilder()
.addHeader("userId","1")
.addHeader("session","2")
.build();
Response proceed = chain.proceed(build);
return proceed;
}
})
.build();
retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.baseUrl("")
.client(okHttpClient)
.build();
}
public static RetrofitUtils getInstance(){
if (utils==null){
utils = new RetrofitUtils();
}
return utils;
}
//1、新建日志拦截
public class HttpLog implements HttpLoggingInterceptor.Logger{
@Override
public void log(String message) {
Log.e("log: ","拦截器消息"+message );
}
}
public <T>T create(Class<T> classes){
return retrofit.create(classes);
}
}