当 post 请求里面的数据量太大了的时候,API虽然能够接收到请求,但是header 和 body里面的数据都为null。 SpringBoot 内置 Tomcat 默认的 post 请求大小是 2M。 官方参数配置解释: https://docs./spring-boot/docs/current/reference/html/application-properties.html#application-properties.server 解决方案:server: tomcat: max-http-form-post-size: -1 /////////////////////////////////////////////////////////////////////////////////////////////// 最近做一个上传图片的项目,前端使用jquery 的post提交,然后把上传的图片的base64码 传到后台,发现几KB或者几十KB的图片,都可以传到后台,但是在上传几M 的图片在后台接收的时候,发现传过来的参数都是空。而且页面和控制台都没有报错,想想以前的学习知识,理论上post传参是没有限制的,为什么 会出现这种问题呢? 通过查阅资料总结如下: 一、首先我们应该知道 所谓限制post参数的大小,到底是由什么限制的,http协议规范并没有对URL的长度进行限制。就算有限制,它也只是限制你URI的大小,对你后面所带的参数的长度并没有什么限制。 二、另外就是所谓长度限制是有浏览器和web应用服务器决定的,不同的浏览器和服务器设定的大小都不一样。主要还是看浏览器和服务器处理程序的能力。 综上两点,我就知道我的问题出在哪了,由于我本地服务器用的是tomcat,tomcat默认限制post大的大小是2M, 设置post请求的大小(以tomcat为例),在conf/server.xml 文件中,在 标签中设置 maxPostSize="0", maxPostSize="0",就代表post请求的参数无限制。 参考链接: 关于 HTTP GET/POST 请求参数长度最大值的一个理解误区 java url 请求 最大长度限制_Http请求 url 请求头 请求体 大小长度限制-蒲公英云 () 关于java:在Spring Boot中增加HTTP Post maxPostSize | 码农家园 () ////////////////////////////////////////////////////////////////////////////////////////////// 使用springboot 架了一个api service,但是在调用这个api的时候,发现当post请求里面的数据量太大了的时候,API虽然能够接收到请求,但是header 和 body里面的数据都为null,查了一下,网上好多都是在application.properties设置: spring.http.multipart.max-file-size=-1 spring.http.multipart.max-request-size=-1 试了一下不行。最后试了一下: server.tomcat.max-http-post-size=-1 这个可以。Tomcat默认的post请求大小好像是2M还是多少来着,忘了。 ///////////////////////////////////////////////////////////////////////////////////////////// 因为我这里上传是传图片,图片以base64形式携带在请求参数中,form表单的形式提交,故怀疑可能是请求参数大小被限制了,于是添加以下配置 1 2 3 4 5 #注意这是server!! server: max-http-header-size: 4048576 tomcat: max-http-post-size: 1000MB #请求参数长度 spring: servlet: multipart: enabled: true max-file-size: 1000MB #单个文件的最大上限 max-request-size: 1000MB #单个请求的文件总大小上限 ////////////////////////////////////////////////////////////////////////////////////////////// server: max-http-header-size: 4048576 tomcat: max-http-post-size: 1000MB #请求参数长度 spring: servlet: multipart: enabled: true max-file-size: 1000MB #单个文件的最大上限 max-request-size: 1000MB #单个请求的文件总大小上限 |
|