Я пытаюсь выполнить запрос 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
}
}
}
Заранее спасибо