POST参数内容有最大大小吗?


70

我正在对Java应用程序进行故障排除,该应用程序使用HTTP POST和Servlet在两个系统之间发送XML。我怀疑问题在于XML增长得太大了。这可能是问题所在吗?有限制吗?

当它不起作用时,request.getParameter("message")消费者端的会返回null。这两个应用程序都在TomCat上运行。例如,大小为1.73mb的XML文档将无法通过。

Answers:


107

按照默认设置为2 MB <Connector>

maxPostSize = POST的最大大小(以字节为单位),将由容器FORM URL参数解析处理。可以通过将此属性设置为小于或等于0的值来禁用该限制。如果未指定,则将该属性设置为2097152(2兆字节)。

编辑Tomcat的server.xml。在<Connector>元素中,添加一个属性maxPostSize并设置一个较大的值(以字节为单位)以增加限制。

话虽如此,如果这是问题所在,您应该Post data too big在tomcat的行中有一个例外

有关更多信息


感谢您的回答。我设法使其工作。我没有任何例外,但据我所知,它可能已被困在这个旧地牢中某处
l3dx 2010年

我确实遇到了同样的问题,但是我认为我没有使用jboss 4收到提到的错误。然后,我可能只是忽略了它
Toskan 2012年

2
是否有可能从我的应用程序中指定此限制,而不是编辑tomcat的server.xml?
Rajat Gupta

在我的Tomcat 8中,maxPostSize = 0的值并不意味着“无限”。值为-1可以解决问题。
s1m3n

6

HTTP POST请求没有定义的最大大小。如果您注意到这样的限制,那么这就是您的HTTP Server / Client的任意限制。

如果你告诉你可能会得到更好的答案如何将XML大。


1
参考TOMCAT 5.5嵌入式Apache Tomcat文档, maxPostSize的默认值(如果未指定)设置为2097152(2兆字节)
Halayem Anis


0

是的,最大为2MB,可以通过这样的配置更改来增加它。如果您的POST主体不是多部分文件形式,则可能需要在应用程序yml配置文件中为tomcat添加max-http-post配置。

将每个多部分文件的最大大小增加到10MB,总有效负载大小最大增加到100MB

 spring:
    servlet:
      multipart:max-file-size: 10MB
      multipart:max-request-size: 100MB
 

将帖子请求的最大大小(可能只是字符串格式的表单数据)设置为〜10 MB

 server:
    tomcat:
        max-http-post-size: 100000000 # max-http-form-post-size: 10MB for new version

您可能需要为最新的sprintboot版本添加它->

服务器:tomcat:最大http-form-post-size:10MB

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.