由于我的API请求都包含一些共同的json字段,我希望将这些字段添加到拦截器中,但是我很难修改拦截器中的OkHttp3RequestBody
下面是我的retrofitBuilder:
private val retrofitBuilder by lazy {
val client = OkHttpClient.Builder().apply {
addInterceptor(MyInterceptor())
}.build()
Retrofit.Builder()
.baseUrl("https://placeholder.com/")
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build()
}
这是拦截器:
class MyInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
//Is it possible to change it in JSON? Or how do I add paramenters to this body?
val body: RequestBody? = chain.request().body()
return chain.proceed(chain.request())
}
}
我如何添加,例如“traceId”:“abc123”到拦截器内的所有请求体?
3条答案
按热度按时间1cosmwyk1#
在我的例子中:
uttx8gqw2#
拦截器的头部和身体修改:
确定Http客户端:
也许您还想添加日志记录:
acruukt93#
这应该工作,虽然我做了java,认为它你应该在Kotlin工作出来