SpringBoot http post请求数据大小设置操作
背景:
使用http post请求方式的接口,使用request.getParameter("XXX");的方法获取参数的值,当数据量超过几百k的时候,接口接收不到数据或者接收为null。
@RequestMapping(value = "/rcv",method = RequestMethod.POST)
public ResInfo<String> pullApi(HttpServletRequest request) {
String channel = request.getParameter("channel");
}
在application.properties里添加:
spring.http.multipart.max-file-size=-1
spring.http.multipart.max-request-size=-1
默认值:
private String maxFileSize = "1MB"; private String maxRequestSize = "10MB";
这个设置是大小不限制,主要是这个设置。
server.tomcat.max-http-post-size=-1
补充知识:spring boot post请求数据太大接收不到参数(参数为空)报400错误。
spirng boot发送的请求,有的参数数据量大,有的参数数据量小。数据量大的发送不到后端,报400错误。
首先说以jetty为内嵌服务器的时候:
1、修改yml文件或者properties文件,
server.max-http-post-size=200*1024*1024,设置为200m,总够了吧,可以按照量设置小一点。
Spring Boot 1.4.0.M2之后就可以使用这个属性。适合于不修改代码,快速重新部署。
2、在java代码里面实现:
@Bean
public EmbeddedServletContainerCustomizer jettyCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if (container instanceof JettyEmbeddedServletContainerFactory) {
((JettyEmbeddedServletContainerFactory) container)
.addServerCustomizers(new JettyServerCustomizer() {
@Override
public void customize(Server server) {
setHandlerMaxHttpPostSize(200 * 1024 * 1024, server.getHandlers());
}
private void setHandlerMaxHttpPostSize(int maxHttpPostSize,
Handler... handlers) {
for (Handler handler : handlers) {
if (handler instanceof ContextHandler) {
((ContextHandler) handler)
.setMaxFormContentSize(maxHttpPostSize);
}
else if (handler instanceof HandlerWrapper) {
setHandlerMaxHttpPostSize(maxHttpPostSize,
((HandlerWrapper) handler).getHandler());
}
else if (handler instanceof HandlerCollection) {
setHandlerMaxHttpPostSize(maxHttpPostSize,
((HandlerCollection) handler).getHandlers());
}
}
}
});
}
}
};
}
Spring Boot 1.3.x之后可以使用这个功能。
3、设置接收数据在 request body里面。上面两种情况适合于数据不放在request body里面的。
tomcat应该是类似的。
参考https://stackoverflow.com/questions/36872540/spring-boot-rest-service-form-too-large
栏 目:JAVA代码
下一篇:java反射总结实例详解
本文标题:SpringBoot http post请求数据大小设置操作
本文地址:http://www.codeinn.net/misctech/150184.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




