OKHttp 添加 header 仅当它不存在时
OKHttp Add header only if it doesn't already exist
我找不到添加 header 的方法,以防它不存在。
我真正需要的是添加默认 header
"Content-Type": "application/json"
但前提是 header 不存在。
一种方法是在需要默认值时使用不同的 Http 客户端或不同的拦截器,但我希望能够检查 header 是否已经存在并仅在它存在的情况下添加它没有。
这绝对是可能的,但这也取决于你在哪里做。
val i = Interceptor {
val request = if (it.request().header("A") != null) it.request() else it.request()
.newBuilder()
.header("A", "xxx")
.build()
val response = it.proceed(request)
if (response.header("A") != null) response else response
.newBuilder()
.header("A", "xxx")
.build()
}
但是Content-Type比较特殊,因为它通常携带在RequestBody,或者ResponseBody上。 BridgeInterceptor 位于应用程序拦截器和网络拦截器之间。
val contentType = body.contentType()
if (contentType != null) {
requestBuilder.header("Content-Type", contentType.toString())
}
和
我找不到添加 header 的方法,以防它不存在。
我真正需要的是添加默认 header
"Content-Type": "application/json"
但前提是 header 不存在。
一种方法是在需要默认值时使用不同的 Http 客户端或不同的拦截器,但我希望能够检查 header 是否已经存在并仅在它存在的情况下添加它没有。
这绝对是可能的,但这也取决于你在哪里做。
val i = Interceptor {
val request = if (it.request().header("A") != null) it.request() else it.request()
.newBuilder()
.header("A", "xxx")
.build()
val response = it.proceed(request)
if (response.header("A") != null) response else response
.newBuilder()
.header("A", "xxx")
.build()
}
但是Content-Type比较特殊,因为它通常携带在RequestBody,或者ResponseBody上。 BridgeInterceptor 位于应用程序拦截器和网络拦截器之间。
val contentType = body.contentType()
if (contentType != null) {
requestBuilder.header("Content-Type", contentType.toString())
}
和