Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
50 views
in Technique[技术] by (71.8m points)

android - How to get Retrofit 2 error from array body

My current response is

{"response":"validation error","status":"failure","code":400,"errors":["You can not add multiple items with different categories"]}

My current code is :

String errorBody = response.errorBody().string();

JSONObject jsonObject = new JSONObject(errorBody.trim());
jsonObject = jsonObject.getJSONObject("errors");
Iterator<String> keys = jsonObject.keys();
String errors = "";
while (keys.hasNext()) {
     String key = keys.next();
     JSONArray arr = jsonObject.getJSONArray(key);
     for (int i = 0; i < arr.length(); i++) {
       errors += key + " : " + arr.getString(i) + "
";
     }
}

I am trying to get the error code to see if it matches specific keywords to handle the response

question from:https://stackoverflow.com/questions/65884433/how-to-get-retrofit-2-error-from-array-body

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

i think your current code its not to good,better way for u is:

create modelClass for your json output and in retrofit calls write:

if (model.status=='failure' || model.code==400){

print(response.message) // or something like this

}


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...