Android Retrofit OkHttpClient Interceptor Add Header Gets Error“HTTP 403 Forbidden" [英] Android Retrofit OkHttpClient Interceptor Add Header Gets Error "HTTP 403 Forbidden"
问题描述
所以,我的目标是将 api key
嵌入到我的 Retrofit
对象中,这样我就不需要手动将它作为查询参数附加到 每个请求功能,然后我做了以下(学习:https://proandroiddev.com/headers-in-retrofit-a8d71ede2f3e):
So, my goal is to embed the api key
into my Retrofit
object so that I don't need to manually append it as query parameter inside each request function, then I did the following (learn from: https://proandroiddev.com/headers-in-retrofit-a8d71ede2f3e):
private val interceptor = Interceptor { chain ->
val newRequest = chain.request().newBuilder().run {
addHeader("api_key", Constants.API_KEY)
build()
}
chain.proceed(newRequest)
}
private val okHttpClient = OkHttpClient.Builder().run {
connectTimeout(15, TimeUnit.SECONDS)
readTimeout(15, TimeUnit.SECONDS)
addInterceptor(interceptor) //<- apply Interceptor
build()
}
//apply the okHttpClient to my Retrofit object...
但是它失败了并给出了这个错误:HTTP 403 Forbidden
.
But it failed and gave this error: HTTP 403 Forbidden
.
PS:在添加这个 Interceptor
之前一切正常
PS: Before adding this Interceptor
everything works fine
之前:
@GET("neo/rest/v1/feed")
suspend fun getAsteroidsResult(
@Query("start_date") startDate: String,
@Query("end_date") endDate: String,
@Query("api_key") apiKey: String = Constants.API_KEY
): ResponseBody
推荐答案
能否请您添加日志拦截器并设置日志级别并提供日志?
Could you please add log interceptor and set the log level and provide a log?
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
像这样:
OkHttpClient.Builder okBuilder = new OkHttpClient.Builder();
okBuilder.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BASIC).setLevel
(HttpLoggingInterceptor.Level.BODY).setLevel(HttpLoggingInterceptor.Level.HEADERS))
这篇关于Android Retrofit OkHttpClient Interceptor Add Header Gets Error“HTTP 403 Forbidden"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!