body请求体常见的三种格式:1)x-www-form-urlencoded, 2)form data, 3)json格式
@RequestParam可以
用来接收请求url?后面的参数,或者Content-Type为multipart/form-data、application/x-www-form-urlencoded时的http body数据
1)form-data(带文件的表单)
form-data主要是上传文件的一种格式, 可以同时上传多个文件,如果想要在form表单中上传文件的话,需要在form中将编码格式更改:enctype="multipart/form-data"
比如:<form action="" method="post" enctype="multipart/form-data" ></form>
后端接收方式为:
public String aa(String aa,MultipartFile file) //直接接收
public String aa(User user) //也可以通过请求体进行接收
2) x-www-form-urlencoded(普通表单)
这种格式会将表单中的数据转换成键值对,也是form表单的post请求默认发送格式,比如:name=zhan&age=12&sex=男
后端接收方式为:
public String aa(String name,String age,String sex) //也可以直接进行接收
public String aa(User user) //也可以通过请求体进行接收
总结:
a)上面这两个编码类型的表单数据,你可以将它想象成是放在body请求体中的get参数就可以了,
该参数虽然是放在请求体中的,但是你可以直接像是对待请求路径中的参数形式来对待它们
请求路径参数为:localhost/aa?name=zhan&sex=男
b)x-www-form-urlencoded只能上传普通表单,对于带有文件的表单不能上传,需要重新设置编码格式enctype=" multipart/form-data"
3) json
这种格式表示上传文本,可以上传text,json,xml,html等
一般通过axios发送post请求的时候,都会将请求参数转换成json文本,
在日常使用中,我们一般发送post请求,都是发送这种json格式的数据
后端接收方式为:
public String aa(@RequestBody User user)