我现在有 10 多个不同的 api,我想为每个 api 添加一些通用的请求参数,理想的方法是每个 api 都有拦截器,这在改造中是不可能的。 有没有好的方法来做到这一点?
最佳答案
您仍然应该能够通过改造来做到这一点——为 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);
}
}
关于android - retrofit2中不同api添加通用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37665160/