android - retrofit2中不同api添加通用参数

标签 android okhttp retrofit2

我现在有 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/

相关文章:

android - 如何使用 Kotlin 从 fragment 中关闭软键盘?

java - 与 PayPal 的 OkHTTP 连接出现 SSLHandshakeException

android - 使用 Retrofit 和 execute() 从错误响应中获取正文

android - Retrofit 通过移动服务连接,因为 Wi-Fi 网络没有互联网连接

android - 如何在 Flutter 中动态改变文本的颜色?

android - 在Android内核中加载内核模块

android - Retrofit 2 在拦截中将帖子附加到请求体

android - 无法从 AsyncTask 获取 Json

java - 使用改造进行注册时遇到问题

java - python 从套接字接收