我正在使用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对象的深度?我应该怎么做才能获得可以解析的完整响应正文?
答案 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(),我认为您将获得完整的响应。