#android #retrofit #retrofit2 #authenticator
Вопрос:
Я использую модернизацию для вызовов API в одном из проектов Android. Я хочу прочитать сообщение об ошибке, отправленное с серверной части для любого API, когда срок действия токена истечет. Когда срок действия токена истекает, OkHttpClient.authenticator вызывается с объектом ответа. В этом аутентификаторе я должен прочитать сообщение об ошибке, отправленное с моего бэкенда, чтобы отличить ошибки. Но я не вижу никакого способа прочитать сообщение об ошибке, отправленное с сервера из объекта ответа. У кого-нибудь есть идеи, как это прочесть?
Ответ №1:
Вы можете взять тело несанкционированного ответа из переменной ответа параметра функции аутентификации.
override fun authenticate(route: Route?, response: Response): Request? {
val unAuthMessage = response.body?.string()
//Your code...
}
В моей ситуации мое тело-это просто строка, но если ваше сообщение-json, вы можете преобразовать его в объект json.