Dagger generating multiple instances of retrofit interceptor

前端 未结 2 929
别那么骄傲
别那么骄傲 2021-01-25 09:05

I am new to Dagger and Retrofit. I am having issue where multiple instances of retrofit custom interceptor are being generated despite declared singleton in dagger module. I onl

2条回答
  •  耶瑟儿~
    2021-01-25 09:22

    You should not call provideRequestInterceptor directly

    @Provides @Singleton
    public Retrofit provideRetrofitInstance(AuthenticationRequestInterceptor authInterceptor)
    {
        HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
        // set your desired log level
        logging.setLevel(HttpLoggingInterceptor.Level.BODY);
    
        OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
    
        // add session headers interceptor
        httpClient.addInterceptor(authInterceptor);
    
        // add logging as last interceptor
        httpClient.addInterceptor(logging);  
    
        return new Retrofit.Builder()
                .baseUrl(getConfig().getBaseUrl())
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(httpClient.build()) //for logging purpose remove later
                .build();
    }
    

提交回复
热议问题