-
-
Notifications
You must be signed in to change notification settings - Fork 85
Response实体规范
xuexiangjys edited this page Jan 25, 2021
·
2 revisions
需要注意的是,所以请求返回的结果必须要满足以下格式:
{
"Code":0, //响应码,0为成功,否则失败
"Msg":"", //请求失败的原因说明
"Data":{} //返回的数据对象
}
其中Code
、Msg
、Data
建议使用大写字母,当然使用小写字母也没有问题,否则无法解析成功。
【注意】这里Code
为0才代表请求成功,如果你的Code码不是0代表成功,你可以使用XHttpSDK.setSuccessCode
设置代表成功的值。
如果以上的规范不能满足你的需求,你可以按照下面的步骤自定义一套规范格式。
继承
ApiResult
实体,重写如下4个方法。
-
getCode
:获取请求错误码 -
getMsg
:获取请求错误信息 -
isSuccess
:获取请求是否成功的结果 -
getData
:获取请求返回的数据
如果你不想使用默认的ApiResult实体作为统一的服务端响应实体,比如说你想要下面的响应实体:
private int errorCode; //请求的错误码
private String errorInfo; //请求错误的原因描述
private T result; //请求的结果
private long timeStamp; //服务端返回的时间戳
供参考的自定义Response实体代码如下:
public class CustomApiResult<T> extends ApiResult<T> {
private int errorCode;
private String errorInfo;
private T result;
private long timeStamp;
public int getErrorCode() {
return errorCode;
}
public CustomApiResult<T> setErrorCode(int errorCode) {
this.errorCode = errorCode;
return this;
}
public String getErrorInfo() {
return errorInfo;
}
public CustomApiResult<T> setErrorInfo(String errorInfo) {
this.errorInfo = errorInfo;
return this;
}
public T getResult() {
return result;
}
public CustomApiResult<T> setResult(T result) {
this.result = result;
return this;
}
public long getTimeStamp() {
return timeStamp;
}
public CustomApiResult<T> setTimeStamp(long timeStamp) {
this.timeStamp = timeStamp;
return this;
}
@Override
public int getCode() {
return errorCode;
}
@Override
public String getMsg() {
return errorInfo;
}
@Override
public boolean isSuccess() {
return errorCode == 0;
}
@Override
public T getData() {
return result;
}
@Override
public String toString() {
return "ApiResult{" +
"errorCode='" + errorCode + '\'' +
", errorInfo='" + errorInfo + '\'' +
", timeStamp='" + timeStamp + '\'' +
", result=" + result +
'}';
}
}