تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ رضا فرجی
محل ست کردن NikeAuthenticator
Hamidreza Karimi حل شده توسط Hamidreza Karimi

سلام دوستان. NikeAuthenticator رو باید کجا ست کنیم؟

سلام وقت بخیر

 

ممنون میشم توضیحات بیشتری درمورد سوالتون بدید .

پوریا شفیعی ۱۸ خرداد ۱۴۰۰، ۱۶:۲۰

سلام رضا جان، امیدوارم حالتون خوب باشه

 

باید به عنوان authenticator برای okhttpClient پاسش بدیم

که به شکل زیر هست

 

NetworkModule with Hilt

 @Provides
    @Singleton
    fun provideBaseAuthenticator(
        @ApplicationContext context: Context
    ): BaseAuthenticator {
        return BaseAuthenticator(context)
    }
    @Provides
    @Singleton
    fun provideClient(
        loggingInterceptor: HttpLoggingInterceptor,
        authenticator: BaseAuthenticator?
    ): OkHttpClient {
        val builder = OkHttpClient.Builder()
            .addInterceptor(loggingInterceptor)
            .addInterceptor {
                val oldRequest = it.request()
                val newRequestBuilder = oldRequest.newBuilder()
                if (TokenContainer.accessToken != null)
                    newRequestBuilder.addHeader(
                        "Authorization",
                        "Bearer ${TokenContainer.accessToken}"
                    )
                newRequestBuilder.addHeader("Accept", "application/json")
                newRequestBuilder.method(oldRequest.method, oldRequest.body)
                return@addInterceptor it.proceed(newRequestBuilder.build())
            }.also { okhttp ->
                authenticator?.let { okhttp.authenticator(it) }
            }
        return builder.build()
    }

که همین رو میتونید برای کوین هم بنویسید

البته که استاد انشالا در جلسات آخر راه بهبود یافته‌تر رو توضیح میدن

 

با آرزوی موفقیت

بهترین پاسخ
Hamidreza Karimi ۱۸ خرداد ۱۴۰۰، ۱۸:۴۷