【发布时间】:2022-11-29 05:40:54
【问题描述】:
如果我想发布请求和响应,标头有什么用? 怎么可能在那里“保存”令牌?
我找不到任何好的解释。
【问题讨论】:
标签: android kotlin retrofit2 okhttp
如果我想发布请求和响应,标头有什么用? 怎么可能在那里“保存”令牌?
我找不到任何好的解释。
【问题讨论】:
标签: android kotlin retrofit2 okhttp
您可以使用 Retrofit 调用 api 并将令牌存储到共享首选项中,并将通用标头添加到 OkhttpClient
val prefs = Prefs.getInstance();
val httpClient = OkHttpClient.Builder()
httpClient.addInterceptor { chain ->
val original = chain.request()
val request = original.newBuilder()
.header("Authorization", prefs.token)
.header("Accept", "application/json")
.method(original.method, original.body)
.build()
chain.proceed(request)
}
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
httpClient.addInterceptor(interceptor)
val client = httpClient.build()
并像这样制作 Retrofit 对象
Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(
GsonConverterFactory.create(
GsonBuilder().setPrettyPrinting().create()
)
)
.client(client).build()
【讨论】: