Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有没有办法在onError分支中获取数据模型?_Android_Kotlin_Retrofit_Rx Java2 - Fatal编程技术网

Android 有没有办法在onError分支中获取数据模型?

Android 有没有办法在onError分支中获取数据模型?,android,kotlin,retrofit,rx-java2,Android,Kotlin,Retrofit,Rx Java2,我通过改造和RXJava从API获取数据模型。模型包含带有自定义消息的错误字符串 {“数据”:[],“错误”:[{“代码”:168,“消息”:“数字超出范围”}]} 订阅功能: subscribe({ eventLiveData.value = SubmitFinished }, { // it: Throwable! eventLiveData.value = SubmitResponseError // I want to have my o

我通过改造和RXJava从API获取数据模型。模型包含带有自定义消息的错误字符串

{“数据”:[],“错误”:[{“代码”:168,“消息”:“数字超出范围”}]}

订阅功能:

subscribe({
       eventLiveData.value = SubmitFinished
    }, { // it: Throwable!
       eventLiveData.value = SubmitResponseError
       // I want to have my object here!
    })
有没有办法让我的对象在onError分支中有错误代码?
谢谢你

是的,
onError
你得到了
Throwable
对象,你可以将它强制转换为
HttpException

data class Data(
    @SerializedName("content") val content: String
)

data class Error(
    @SerializedName("code") val code: Int,
    @SerializedName("message") val message: String,
)

data class Response(
    @SerializedName("data") val data: List<Data>,
    @SerializedName("errors") val errors: List<Error>
)

fun onError(e: Throwable): List<Error>? {
    return try {
        val httpException = e as? HttpException
        val errors = JSONObject(httpException?.response()?.errorBody()?.string()).get("errors") as List<Error>
    } catch (ignore: Exception) {
        null
    }
}
数据类数据(
@SerializedName(“内容”)val内容:字符串
)
数据类错误(
@SerializedName(“代码”)val代码:Int,
@SerializedName(“消息”)val消息:字符串,
)
数据类响应(
@SerializedName(“数据”)val数据:列表,
@SerializedName(“错误”)val错误:列表
)
有趣的人(e:可丢弃):名单?{
回击{
val httpException=e作为?httpException
val errors=JSONObject(httpException?.response()?.errorBody()?.string()).get(“errors”)作为列表
}捕获(忽略:异常){
无效的
}
}
检查这篇文章:


是的,
onError
您将获得
Throwable
对象,您可以将其强制转换为
HttpException

data class Data(
    @SerializedName("content") val content: String
)

data class Error(
    @SerializedName("code") val code: Int,
    @SerializedName("message") val message: String,
)

data class Response(
    @SerializedName("data") val data: List<Data>,
    @SerializedName("errors") val errors: List<Error>
)

fun onError(e: Throwable): List<Error>? {
    return try {
        val httpException = e as? HttpException
        val errors = JSONObject(httpException?.response()?.errorBody()?.string()).get("errors") as List<Error>
    } catch (ignore: Exception) {
        null
    }
}
数据类数据(
@SerializedName(“内容”)val内容:字符串
)
数据类错误(
@SerializedName(“代码”)val代码:Int,
@SerializedName(“消息”)val消息:字符串,
)
数据类响应(
@SerializedName(“数据”)val数据:列表,
@SerializedName(“错误”)val错误:列表
)
有趣的人(e:可丢弃):名单?{
回击{
val httpException=e作为?httpException
val errors=JSONObject(httpException?.response()?.errorBody()?.string()).get(“errors”)作为列表
}捕获(忽略:异常){
无效的
}
}
检查这篇文章:


发布与问题相关的实际部分而不是链接更合适。发布与问题相关的实际部分而不是链接更合适。