在改造中将常用参数添加到不同的api2

时间:2016-06-06 19:12:34

标签: android okhttp retrofit2

我现在有10多个不同的api,我想为每个api添加一些常见的请求参数,理想的方法是每个api都有拦截器,这在改造中是不可能的。 有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

你仍然可以通过改造来做到这一点 - 创建一个带有API调用的静态创建的类,并根据传递的参数调用所需的扩展。

public interface RetrofitAPICalls{
}

public class RetrofitAPIService{
      private RetroFitAPIService(){}
      public static RetrofitAPICalls createApiService(PARAMETERS NEEDED FOR YOUR INTERCEPTOR){
             Retrofit.Builder builder = new Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .baseUrl(baseUrl);

             OkHttpClient client = new OkHttpClient.Builder().addInterceptor(getInterceptor()).addInterceptor(loggingInterceptor)
               .build();
            builder.client(client);
       }
}
public void getInterceptor()
{
     return new Interceptor() {
                @Override
                public Response intercept(Chain chain) throws IOException {
                    Request request = chain.request();
                    Request newReq = request.newBuilder()

                    //SWITCH BASED ON REQUEST?

                   return chain.proceed(newReq);
                }
            }