目录
接口在返回结果集的时候出现了406的报错,但是返回String类型不会报错,正常返回。
406 Not Acceptable是一个HTTP响应状态码,指示服务器无法实现客户端的一个 Accept-标头的请求响应。这通常是用户代理(即浏览器)指定一个可接受的字符集(通过Accept-Charset)、语言(通过Accept-Language)等应响应的结果,并且服务器无法提供此类响应。
406:HTTP协议状态码的一种(4xx表示客户端的问题),表示客户端无法解析服务端返回的内容。就是后台的返回结果前台无法解析就会报406错误。
406 Not Acceptable 表示用户代理(在大多数情况下是 Web 浏览器)请求了有效的资源,但请求包含一个特殊的 Accept- 标头,该标头向服务器指示有效响应只能包含特定类型的信息。下面是此类场景的几个栗子:
在 HTTP 请求中可以提供少量其他 Accept- 标头,但绝大多数场景与上述类似:用户代理需要显式类型的响应,服务器要么提供响应,要么返回 406 代码以指示它无法实现请求。
将返回的数据类型类中为所有属性添加get/set方法,或者添加@Data注解,或者添加@Setter和@Getter
使用@Data注解或@Setter@Getter的话需要lombok这个依赖:
- <!-- lombok -->
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <version>1.18.8</version>
- </dependency>
如果方法一没有解决的话,就加上这个依赖:
- <!-- json解析 -->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.9.9</version>
- </dependency>
如果出现not found报错的话,就提高这个依赖的版本,可以改为
- <!-- json解析 -->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.10.1</version>
- </dependency>
如果上述两个方法都没有解决的话,你就去看你接口返回的数据,比如我的,我是返回的结果集,通过试错,我发现是我的结果集出现了问题,我的结果集进行了序列化。
把这段代码删去,问题就解决了。