HTTP 响应结果类 HTTPResult
,用于表示 HTTP 请求后的响应结果。它具有属性响应码 code
、消息 message
和数据 data
- 响应结果
success()
:成功响应,返回状态码为 200,并且提示语为“成功”badRequest()
:错误请求响应,返回状态码为 400,并且提示语为“错误请求”unauthorized()
:未授权响应,返回状态码为 401,并且提示语为“未授权”forbidden()
:禁止访问响应,返回状态码为 403,并且提示语为“禁止访问”notFound()
:未找到响应,返回状态码为 404,并且提示语为“未找到”internalServerError()
:内部服务器错误响应,返回状态码为 500,并且中文提示语为“内部服务器错误”serviceUnavailable()
:服务不可用响应,返回状态码为 503,并且中文提示语为“服务不可用”
- 获取提示语
getMessageEn()
:根据状态码返回对应的英文提示语getMessageZh()
:根据状态码返回对应的中文提示语
- 转化 JSON 格式
toJSONObject()
:将当前 HTTP 响应结果对象转换成 JSON 对象并返回toJSONString()
:将当前 HTTP 响应结果对象转换成 JSON 字符串并返回
其中转化 JSON 格式涉及的函数基于阿里巴巴的 Fastjson 包,需先在 Maven 的 pom.xml
加上依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
后在 Java 中引入包
import com.alibaba.fastjson.*
以下是 HTTP 响应结果类 HTTPResult
代码
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class HTTPResult {
// 响应码
private Integer code;
// 消息
private String message;
// 数据
private Object data;
// HTTP 状态码对应的英文提示语
public static Map<Integer, String> statusCodesEn = new HashMap<Integer, String>() {{
put(100, "Continue");
put(101, "Switching Protocols");
put(200, "OK");
put(201, "Created");
put(202, "Accepted");
put(204, "No Content");
put(301, "Moved Permanently");
put(302, "Found");
put(304, "Not Modified");
put(400, "Bad Request");
put(401, "Unauthorized");
put(403, "Forbidden");
put(404, "Not Found");
put(500, "Internal Server Error");
put(501, "Not Implemented");
put(503, "Service Unavailable");
}};
// HTTP 状态码对应的中文提示语
public static Map<Integer, String> statusCodesZh = new HashMap<Integer, String>() {{
put(100, "继续");
put(101, "切换协议");
put(200, "成功");
put(201, "已创建");
put(202, "已接受");
put(204, "无内容");
put(301, "永久移动");
put(302, "临时移动");
put(304, "未修改");
put(400, "错误请求");
put(401, "未授权");
put(403, "禁止访问");
put(404, "未找到");
put(500, "内部服务器错误");
put(501, "未实现");
put(503, "服务不可用");
}};
// 构造函数
public HTTPResult(Integer code, String message, Object data) {
this.code = code;
this.message = message;
this.data = data;
}
// Getter 和 Setter 函数
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
// 成功
public static HTTPResult success(Object data) {
Integer code = 200;
return new HTTPResult(code, statusCodesZh.get(code), data);
}
public static HTTPResult success(String message, Object data) {
Integer code = 200;
return new HTTPResult(code, message, data);
}
// 错误请求
public static HTTPResult badRequest() {
Integer code = 400;
return new HTTPResult(code, statusCodesZh.get(code), null);
}
public static HTTPResult badRequest(String message) {
Integer code = 400;
return new HTTPResult(code, message, null);
}
// 未授权
public static HTTPResult unauthorized() {
Integer code = 401;
return new HTTPResult(code, statusCodesZh.get(code), null);
}
public static HTTPResult unauthorized(String message) {
Integer code = 401;
return new HTTPResult(code, message, null);
}
// 禁止访问
public static HTTPResult forbidden() {
Integer code = 403;
return new HTTPResult(code, statusCodesZh.get(code), null);
}
public static HTTPResult forbidden(String message) {
Integer code = 403;
return new HTTPResult(code, message, null);
}
// 未找到
public static HTTPResult notFound() {
Integer code = 404;
return new HTTPResult(code, statusCodesZh.get(code), null);
}
public static HTTPResult notFound(String message) {
Integer code = 404;
return new HTTPResult(code, message, null);
}
// 内部服务器错误
public static HTTPResult internalServerError() {
Integer code = 500;
return new HTTPResult(code, statusCodesZh.get(code), null);
}
public static HTTPResult internalServerError(String message) {
Integer code = 500;
return new HTTPResult(code, message, null);
}
// 服务不可用
public static HTTPResult serviceUnavailable() {
Integer code = 503;
return new HTTPResult(code, statusCodesZh.get(code), null);
}
public static HTTPResult serviceUnavailable(String message) {
Integer code = 503;
return new HTTPResult(code, message, null);
}
// 获取状态码对应的英文提示语
public static String getMessageEn(Integer code) {
return statusCodesEn.get(code);
}
// 获取状态码对应的中文提示语
public static String getMessageZh(Integer code) {
return statusCodesZh.get(code);
}
// 将返回结果对象转化为 JSON 对象
public JSONObject toJSONObject() {
return (JSONObject) JSON.toJSON(this);
}
// 将返回结果对象转化为 JSON 字符串
public String toJSONString() {
return JSON.toJSONString(this);
}
}