I m creating an android app and i m using retrofit to consume api webservices. my problem is when i add a header using annotation, it works.
@Headers("Authorization: jwt-token")
@POST("appusers-service/signin/identification")
suspend fun authentication(@Body body : LoginIdentificationDto.Params) : NetworkResponse<LoginIdentificationDto.Result, LoginIdentificationDto.Errors>
but when I use intercepters to add the header dynamically, it doesn't work
@Provides
@Singleton
fun provideHttpClient() : OkHttpClient
{
return OkHttpClient.Builder()
.callTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS)
.addNetworkInterceptor {
val builder : Request.Builder = it.request().newBuilder()
builder.addHeader(AUTHORIZATION_HEADER, "jwt-token")
return@addNetworkInterceptor it.proceed(builder.build())
}
.build()
}
@Provides
@Singleton
fun provideRetrofit(httpClient : OkHttpClient, mapper : ObjectMapper) : Retrofit
{
return Retrofit.Builder()
.baseUrl(BASE_URL)
.client(httpClient)
.addCallAdapterFactory(NetworkResponseAdapterFactory())
.addConverterFactory(JacksonConverterFactory.create(mapper))
.build()
}
how can i solve this problem please?