我已经创建了Model类来处理我的Retrofit2 Callback:
public class ModelSendPhone {
@Expose
@SerializedName("code")
private int code;
@Expose
@SerializedName("user_id")
private int user_id;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
这是我的通话代码:
Call<ModelSendCode> sendCodeCall = getRetrofit().sendCode(params);
sendCodeCall.enqueue(this);
现在我注意到如果我输入错误的@ Params,响应会给出错误422和JSON响应正文,其中包含以下消息:
{"name":"Unprocessable entity","message":"Wrong params","code":0,"status":422,"type":"yii\\web\\HttpException"}
我的问题是如何在onResponse方法中的Toast中显示此“消息”?当我正在实现Callback<ModelSendCode>
时,我的onResponse方法没有解析它。
非常感谢
答案 0 :(得分:0)
您的模型可能看起来像这样,只需检查状态即可。
public class ModelSendPhone implements Serializable
{
private String message;
private String status;
private String name;
private int user_id;
private int code;
private String type;
public String getMessage ()
{
return message;
}
public void setMessage (String message)
{
this.message = message;
}
public String getStatus ()
{
return status;
}
public void setStatus (String status)
{
this.status = status;
}
public String getName ()
{
return name;
}
public void setName (String name)
{
this.name = name;
}
public int getUser_id ()
{
return user_id;
}
public void setUser_id (int user_id)
{
this.user_id = user_id;
}
public int getCode ()
{
return code;
}
public void setCode (int code)
{
this.code = code;
}
public String getType ()
{
return type;
}
public void setType (String type)
{
this.type = type;
}
@Override
public String toString()
{
return "ClassPojo [message = "+message+", status = "+status+", name = "+name+", user_id = "+user_id+", code = "+code+", type = "+type+"]";
}
}
答案 1 :(得分:0)
在onResponse方法中,您将获得类型为
的响应对象Response<ModelSendCode>
这是一个HTTP响应。根据{{3}}
您只需执行response.message()
即可从 HTTP 响应中获取消息。您还可以使用response.isSucessful()
检查它是否成功。你试过了吗?
答案 2 :(得分:0)
感谢您的评论,但我找到了我需要的东西。 response.errorBody().string()
根据{{3}},这是正确的方法,以获得任何错误的默认响应,现在我将它转换为Json并按我的意愿解析它