SpringBoot http post请求数据大小设置操作

 更新时间:2020年09月17日 10:07:28   作者:艾斯-李  
这篇文章主要介绍了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

以上这篇SpringBoot http post请求数据大小设置操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Flyway详解及Springboot集成Flyway的详细教程

    Flyway详解及Springboot集成Flyway的详细教程

    Flayway是一款数据库版本控制管理工具,,支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里。这篇文章主要介绍了Flyway详解及Springboot集成Flyway的详细教程的相关资料,需要的朋友可以参考下
    2020-07-07
  • SpringBoot实现数据加密脱敏的示例代码

    SpringBoot实现数据加密脱敏的示例代码

    这篇文章主要为大家学习介绍了SpringBoot如何利用注解+反射+AOP实现数据加密脱敏的功能,文中的示例代码讲解详细,需要的可以参考一下
    2023-08-08
  • Java反转字符串的五种方法总结

    Java反转字符串的五种方法总结

    这篇文章主要介绍了五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接反转以及Java8的StreamAPI,每种方法都有其特点和适用场景,需要的朋友可以参考下
    2025-03-03
  • Java Guava排序器Ordering原理及代码实例

    Java Guava排序器Ordering原理及代码实例

    这篇文章主要介绍了Java Guava排序器Ordering原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 基于Java实现多线程下载并允许断点续传

    基于Java实现多线程下载并允许断点续传

    这篇文章主要介绍了基于Java实现多线程下载并允许断点续传,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 详解Java基础之封装

    详解Java基础之封装

    这篇文章主要为大家介绍了Java基础之封装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • SpringAop日志找不到方法的处理

    SpringAop日志找不到方法的处理

    这篇文章主要介绍了SpringAop日志找不到方法的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • SpringBoot自定义加载yml实现方式,附源码解读

    SpringBoot自定义加载yml实现方式,附源码解读

    这篇文章主要介绍了SpringBoot自定义加载yml实现方式附源码解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java concurrency集合之ConcurrentSkipListMap_动力节点Java学院整理

    Java concurrency集合之ConcurrentSkipListMap_动力节点Java学院整理

    这篇文章主要为大家详细介绍了Java concurrency集合之ConcurrentSkipListMap的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 详解Java对象的内存布局

    详解Java对象的内存布局

    这篇文章主要介绍了Java对象的内存布局,对对象内存感兴趣的同学,一定要仔细研究下
    2021-04-04

最新评论