7

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

petrrr33
  • 583
  • 9
  • 24

1 Answers1

6

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 :-)

Rajasekaran M
  • 2,478
  • 2
  • 20
  • 30