服务器的Retrofit2不一致响应

时间:2018-07-13 16:07:01

标签: android kotlin retrofit moshi

我是Android开发的新手,正在学习如何使用Retrofit,并且很难处理来自服务器的不一致响应。

服务器将返回两种以上的响应。

我可以知道如何处理这种服务器响应吗? 我是否应该基于服务器响应创建其他数据类来处理它?<​​/ p>


服务器响应

结果-成功

{
    "status": true,
    "code": null,
    "result": {
        "id": 1,
        "name": "User",
        "email": "user@gmail.com",
        "created_at": "2018-07-12 15:25:42",
        "updated_at": "2018-07-12 15:25:42"
    }
}

结果-失败

{
    "status": false,
    "code": null,
    "result": "Server error."
}

结果-验证

{
    "status": true,
    "code": null,
    "result": {
        "email": [
            "The email field is required."
        ],
        "password": [
            "The password field is required."
        ]
    }
}

Android

消息模型

import com.squareup.moshi.Json

data class Errors (
        @Json(name = "status") val status: Boolean?,
        @Json(name = "code") val code: Int?,
        @Json(name = "result") val message: Objects?
)

1 个答案:

答案 0 :(得分:0)

您可以多次使用“结果”键,具体取决于这样的响应状态

`       @Json(name = "status") val status: Boolean?,
        @Json(name = "code") val code: Int?,
        @Json(name = "result") val message: String?,
        @Json(name = "result") val result: ResultObject?,
        @Json(name = "result") val validation: HashMap<String,List<String>>?
`

并且根据您的“状态”键,您可以通过设置条件从正确的“结果”键中获取正确的值。