mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 12:57:04 +05:30
android: override user agent header
This commit is contained in:
parent
79114bac9f
commit
845a73b403
3 changed files with 34 additions and 6 deletions
|
@ -8,8 +8,9 @@ import dagger.Provides
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import dagger.hilt.components.SingletonComponent
|
import dagger.hilt.components.SingletonComponent
|
||||||
|
import dev.msfjarvis.claw.android.interceptors.NapierLoggingInterceptor
|
||||||
|
import dev.msfjarvis.claw.android.interceptors.UserAgentInterceptor
|
||||||
import dev.msfjarvis.claw.api.LobstersApi
|
import dev.msfjarvis.claw.api.LobstersApi
|
||||||
import io.github.aakira.napier.Napier
|
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import okhttp3.Cache
|
import okhttp3.Cache
|
||||||
|
@ -32,11 +33,8 @@ object ApiModule {
|
||||||
fun provideClient(cache: Lazy<Cache>): OkHttpClient {
|
fun provideClient(cache: Lazy<Cache>): OkHttpClient {
|
||||||
return OkHttpClient.Builder()
|
return OkHttpClient.Builder()
|
||||||
.cache(cache.get())
|
.cache(cache.get())
|
||||||
.addNetworkInterceptor { chain ->
|
.addNetworkInterceptor(UserAgentInterceptor())
|
||||||
val request = chain.request()
|
.addNetworkInterceptor(NapierLoggingInterceptor())
|
||||||
Napier.d(tag = "LobstersApi") { "${request.method}: ${request.url}" }
|
|
||||||
chain.proceed(request)
|
|
||||||
}
|
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package dev.msfjarvis.claw.android.interceptors
|
||||||
|
|
||||||
|
import io.github.aakira.napier.Napier
|
||||||
|
import okhttp3.Interceptor
|
||||||
|
import okhttp3.Response
|
||||||
|
|
||||||
|
class NapierLoggingInterceptor : Interceptor {
|
||||||
|
override fun intercept(chain: Interceptor.Chain): Response {
|
||||||
|
val request = chain.request()
|
||||||
|
Napier.d(tag = "LobstersApi") { "${request.method}: ${request.url}" }
|
||||||
|
return chain.proceed(request)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package dev.msfjarvis.claw.android.interceptors
|
||||||
|
|
||||||
|
import dev.msfjarvis.claw.android.BuildConfig
|
||||||
|
import okhttp3.Interceptor
|
||||||
|
import okhttp3.Response
|
||||||
|
|
||||||
|
class UserAgentInterceptor : Interceptor {
|
||||||
|
override fun intercept(chain: Interceptor.Chain): Response {
|
||||||
|
return chain.proceed(
|
||||||
|
chain
|
||||||
|
.request()
|
||||||
|
.newBuilder()
|
||||||
|
.header("User-Agent", "Claw-Android/${BuildConfig.VERSION_NAME}/msfjarvis")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue