//工具类拦截器 public class MyInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { //创建一个FormBody.Builder对象,用于添加公共参数 FormBody.Builder builder = new FormBody.Builder(); //先获取原始的请求 Request originalRequest = chain.request(); //获取原始请求里的请求体数据 FormBody formBody = (FormBody) originalRequest.body(); for (int i = 0; i < formBody.size(); i++) { //先把原始的请求体的参数添加到builder里 builder.add(formBody.name(i),formBody.value(i)); } //添加公共参数 builder.add("source","android"); FormBody body = builder.build(); //创建一个新的Request Request request = new Request.Builder() .url(originalRequest.url()) .post(body) .build(); Response response = chain.proceed(request); return response; } } 在Module层里
@Provides //需要拦截器 AddInterceptor_ addInterceptor_(){ OkHttpClient okHttpClient = new OkHttpClient.Builder() .writeTimeout(20, TimeUnit.SECONDS) .readTimeout(20, TimeUnit.SECONDS) .connectTimeout(10, TimeUnit.SECONDS) .addInterceptor(new MyInterceptor())//拦截器 .build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(Api.LOGIN_URL) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .client(okHttpClient)//用自己的设置读取和链接超时时间 .build(); AddInterceptor_Service addInterceptor_service = retrofit.create(AddInterceptor_Service.class); return AddInterceptor_.getAddInterceptor_(addInterceptor_service); } 重写Api 在p层实例化