简体   繁体   中英

How to fetch the error message from 422 Unprocessable Entity response

I make an api call which returns me this

Response{protocol=http/1.1, code=422, message=Unprocessable Entity, url= https://someapi/endpoint }

In the logs, along with the response i get the following:

{"message":"Validation Failed","errors":{"email":["has already been taken"]}}

I'm working on an Android app that has a profile creation feature and I want to redirect the user back so it can change its email address when I receive this response but for that I need to fetch and handle the "errors" message.

How can i get the message from the error body ? I've tried like this:

response.message()

But I get only

Unprocessable Entity

Try like below

 .subscribe(res-> {
                      //success case

                    },
                    t -> {
                        if (t instanceof HttpException) {
                           if (((HttpException) t).code() == 422) {
                           String errorResponse=((HttpException) t).response().errorBody().string();
                         //your validations
                        }
                        } else {

                            t.printStackTrace();

                        }
                    });

I hope it's will help you :-)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM