Как получить тело ошибки API с помощью Kotlin сопрограмм - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь выполнить запрос POST с модификацией и сопрограммами, и всякий раз, когда статус ответа HTTP не равен 200, он просто выдает исключение. У моего API есть тело ответа, которое выглядит следующим образом:

{
 "auth_token": null,
 "error": "Email can't be blank. Password can't be blank. First name can't be blank. Last name can't 
  be blank. Date of birth can't be blank"
}

Я хочу поймать это сообщение об ошибке БЕЗ ОБРАТНЫХ вызовов, возможно ли это?

Класс службы Api

@GET("flowers")
 suspend fun getAllFlowers(@Query("page") page: Int): Flowers

@POST("users/register")
  suspend fun registerUser(@Body user: User) : NetworkResponse

Класс сетевого ответа

 class NetworkResponse(
   val auth: String,
   val error:  String)

Класс ViewModel

     fun registerUser(user: User) {
     coroutineScope.launch {
        try {
            val registerUser = FlowerApi.retrofitService.registerUser(user)
            _token.value = registerUser.auth
        } catch (cause: Throwable) {
            //CATCH EXCEPTION
        }
    }
}

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...