关于SpringBoot参数接收的细节及tomcat对POST请求大小的限制

1 关于POST请求

POST附带的数据,常用的传参方式为Form Data和Requet Payload

 

Form Data形式:

即:当POST请求头中的Content-Type:application/x-www-from-urlencoded(默认),参数以标准的From Data形式提交,以&符号拼接

后端对应使用request.getParameter(name)获取参数

 

Requet Payload形式:

使用AJAX原生POST请求,请求头里设置Content-Type:application/json,请求的参数会显示在Request Payload中,参数格式为JSON格式

后端对应使用getRequestPayload方法获取参数

 

2 关于@RequestParam

@RequestParam

POST和GET均可使用

@RequestParam相当于整合了 request.getParamter(String s)和request.getparamterMap()两个方法的功能

只用于接收From Data形式提交的参数

 

3 关于@RequestBody

只可用于POST请求,GET请求不支持(因为GET请求没有HttpEntity)

只能绑定一个对象实体

只能有一个@RequestBody

 

4 当使用@RequestParam使用Form Data形式提交数据后,后端依然接收不到数据报400错误的解决

当排除注解使用错误,和Content-Type设置错误后,依然接收不到参数报400错误时,就要考虑tomcat对POST请求大小的限制

SpringBoot在配置文件中配置server.tomcat.max-http-form-post-size配置项,默认2MB大小限制

server.tomcat.max-http-form-post-size=-1//不做大小限制

 

posted @ 2022-11-11 11:22  WaterGe  阅读(2506)  评论(0编辑  收藏  举报