代码之家  ›  专栏  ›  技术社区  ›  petryk33

如何从422不可处理实体响应中获取错误消息

  •  7
  • petryk33  · 技术社区  · 6 年前

    我进行了一个api调用,该调用返回以下内容

    响应{协议=http/1.1,代码=422,消息=无法处理的实体,url= https://someapi/endpoint }

    在日志中,我得到了以下响应:

    {“message”:“Validation Failed”,“errors”:{“email”:[“has have been take”]}}}

    我正在开发一款Android应用程序,它有一个配置文件创建功能,我想重新定向用户,以便在我收到此响应时更改其电子邮件地址,但为此,我需要获取并处理“错误”消息。

    如何从错误正文中获取消息?我试过这样做:

    回答消息()

    但我只得到

    无法处理的实体

    1 回复  |  直到 6 年前
        1
  •  6
  •   Rajasekaran M    6 年前

    像下面这样尝试

     .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();
    
                            }
                        });
    

    我希望它能帮助你:-)