如何通过翻新2获得错误的车身响应

时间:2018-10-08 19:04:29

标签: android retrofit retrofit2

我正在使用Retrofit 2,我需要处理JSON格式的响应错误。以下是响应正文的示例。

{
    "success": false,
    "error": {
        "message": {
            "name": [
                "This input is required."
            ]
        }
    }
}

message包含具有错误的字段列表,这意味着该值是动态的。因此,一种可能的解决方案是将响应主体解析为JSON对象。我试图使用response.errorBody().string()

来获取错误信息
@Override
public void onResponse(final Call<Category> call, final Response<Category> response) {
    if (response.isSuccessful()) {

    } else {
        // Handle error
        String errorBody = response.errorBody().string();
    }
}

不幸的是,打印errorBody我只能得到以下结果 {"success":false,"error":{"message":{"name":[""]}}} 改装是否限制了errorBody对象的深度?我应该怎么做才能获得可以解析的完整响应正文?

3 个答案:

答案 0 :(得分:1)

尝试一下我在改造中使用的这段代码。并获得动态错误消息解决方案

\W

答案 1 :(得分:0)

只需使用response.message()

@Override
public void onResponse(final Call<Category> call, final Response<Category> response) {
    if (response.isSuccessful()) {

    } else {
        // Handle error
        Log.i("Response message: ", response.message());
    }
}

答案 2 :(得分:0)

如果您尝试了response.body.toString(),我认为您将获得完整的响应。