Я должен реализовать Retrofit2 для вызовов API.И, пытаясь реализовать перехватчик для выполнения вызова API токена обновления и продолжения текущих api-файлов, мы не можем выполнить проверку неуспешного аутентификации, поскольку ответ такой, как показано ниже
{
"error": "invalid_grant",
"error_description": "Token needs refresh",
"mode": "dev",
"needs_refresh": true,
"statusCode": 400,
"success": false,
"url": "/transactions"
}
Как мы можем обработать этот ответ в перехватчике иСделайте обновление API токена вызова.
Вот так выглядит мой перехватчик.Я хочу проверить ключ "needs_refresh", чтобы выполнить getNewToken ()
override fun intercept(chain: Interceptor.Chain?): Response {
var request = chain!!.request()
var response = chain.proceed(request)
if(response.code()==400) {
getNewToken()
}
val token: String = MyApp.prefs[PrefConstants.KEY_PREF_ACCESS_TOKEN,""]
if(!token.isEmpty())
request = request?.newBuilder()
?.header("Authorization", "Bearer " + token)
?.build()
else
request = request?.newBuilder()
?.build()
return chain.proceed(request)
}