У меня есть идея. Если у вас есть базовая модель для получения ответа для API, вы можете создать собственный геттер для кода ответа и проверить, является ли код ответа в token_expired.
Это пример ответа, который я получил от API.
{
response_code: "200",
response_msg: "",
result: ...
}
И это моя BaseModel.
class BaseModel<T> {
@SerializedName("response_code")
var response_code: Int? = null
get() {
if(field == ErrorStatusCode.TOKEN_EXPIRE) {
ErrorCodeHandler.requestNewToken()
}
return field
},
@SerializedName("response_msg")
var response_msg: String? = null
@SerializedName("result")
var data: T? = null
}
Поэтому, когда срок действия токена истекает, я буду запрашивать Net токен по вызову ErrorCodeHandler.requestNewToken()
Но если вы хотите вызвать API, для которого обнаружен тайм-аут Я понятия не имею, что делать.
PS. Надеюсь, что это поможет.