Kotlin, RxJava, Retrofit2 Calling API, но возвращает 2 разных проблемы JSON
У меня проблема с модернизацией.
Построить модифицированный класс API, как это
@POST("account/login")
@FormUrlEncoded
fun login(
@Field("Grant_Type", encoded = true) Grant_Type: String,
@Field("username", encoded = true) Username:String,
@Field("password", encoded = true) Password:String): Observable<Login>
Называя это API;
override fun login(username: String, password:String) {
try{
disposable.add(api.login("password", username, password)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.onErrorResumeNext( Observable.empty() )
.retry()
.subscribe {
loginApi ->
toastyInfo(loginApi.aaaaaa.toString())
Log.e(TAG, loginApi.aaaaaa)
}
)
}catch (e: Exception){
Log.e(TAG, e.toString())
}
}
Он отлично работает, когда я ввожу правильную информацию в API входа в систему. Я установил свои модели соответственно. Но когда информация для входа не верна, API входа возвращает разные результаты.
Моя модель должна измениться, как мне это сделать или как прочитать код ошибки из входящей информации json
Возвращает 5 полей в моем правильном файле JSON, если это не так, 2 поля поворачиваются.
если входная информация верна, если нормаль неправильна, как прочитать неправильный JSON?
1 ответ
- Вы можете определить 2 разных объекта. Установите String или JsonObject (если вы используете GSON с модификацией) в качестве типа ответа на запрос. После получения ответа проверьте его и преобразуйте в соответствующий объект.
- Определите одну сущность, которая содержит все поля (не забудьте пометить их как обнуляемые) из обоих типов ответов.