跳转至

Spring Boot 定义 API 返回类,调用时报 HTTP 406 错误

约 67 个字 40 行代码 预计阅读时间 1 分钟

情况

代码如下:

控制器
@RestController
@Slf4j
@RequestMapping("/")
public class TestController {

    @GetMapping("/")
    public BaseResponse index(...) {
        // ...
        return new BaseResponse("成功");
    }
}
自定义的返回类
public class BaseResponse<T> {
    private Integer code;
    private String message;
    private T data;

    public BaseResponse(Integer code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public BaseResponse(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public BaseResponse(String message) {
        this.code = 0;
        this.message = message;
    }
}

发送请求,得到的返回结果如下:

1
2
3
4
5
6
{
  "timestamp": "2025-06-26T09:40:53.026+00:00",
  "status": 406,
  "error": "Not Acceptable",
  "path": "/"
}

最可能的问题

未给返回类写 getter、setter 方法。

Lombok 的 @Data 注解可以方便地添加这些方法:

@Data
public class BaseResponse<T> {...}