JavaHTTP响应结果类HTTPResult

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值