Я использую Retrofit для вызова запроса API с именем Hello. Я передаю объект Hello и получаю объект ответа RegLog. В коде
data class Hello(
val username: String,
val password: String,
val newpassword: String,
val firstname: String,
val lastname: String
....
)
data class RegLog(
val accountgroups: List<Accountgroup>,
val accounts: List<Account>
....
)
это выглядит такКогда я отправляю неверное имя пользователя и пароль, сервер отвечает определенным объектом с именем Ошибка
data class Error(
val id: String?,
val message: String?
)
, но это считается успешным запросом. Так что мое приложение вылетает, потому что объект RegLog отличается от объекта Error. Я пытался сделать это с помощью resposne и сбоев callback
ApiService.invoke(SERVER_BASE_URL).helloRequest(hello).enqueue(object:
Callback<RegLogResponse> {
override fun onFailure(call: Call<RegLogResponse>, t: Throwable) {
println("Failure")
println(call)
t.printStackTrace()
}
override fun onResponse(call: Call<RegLogResponse>, response: Response<RegLogResponse>) {
println("Success")
println(call)
println(response)
}
})
, но проблема в том, что даже если «login» не удался, всегда вызывается метод onResponse. Итак, как я могу отобразить 2 разных объекта в одном запросе и как я могу узнать, какой объект я должен отображать каждый раз .. ??