📝个人主页:五敷有你
🔥系列专栏:DeBug
⛺️稳中求进,晒太阳
问题暴露:
415 不支持的媒体类型
原因自查:
1.缺少相应jar包
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.1</version>
</dependency>
2.错误发生代码:
@RequestMapping(value = "/login",method = RequestMethod.POST)
public String login(@RequestBody User user){
System.out.println(user);
return "/success";
}
如图,使用了 @RequestBody时只会解析Content-Type: application/json的请求,之后将相应属性注入user
在请求头中加上即可
Content-Type: application/json
Content-Type讲解
常见Content-Type
- application/x-www-form-urlencoded
- multipart/form-data
- application/json
- application/xml 和 text/xml
Content-Type的使用
- request 的Content-Type
- response的Content-Type
Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。
在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等。
Content-Type的格式:
Content-Type:type/subtype ;parameter
- type:主类型,任意的字符串,如text,如果是*号代表所有;
- subtype:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
- parameter:可选参数,如charset,boundary等。
例如:
Content-Type: text/html;
Content-Type: application/json;charset:utf-8;
常见Content-Type
常见的Content-Type有数百个,下面例举了一些
- HTML文档标记:text/html;
- 普通ASCII文档标记:text/html;
- JPEG图片标记:image/jpeg;
- GIF图片标记:image/gif;
- js文档标记:application/javascript;
- xml文件标记:application/xml;