SpringBoot http post請(qǐng)求數(shù)據(jù)大小設(shè)置操作
背景:
使用http post請(qǐng)求方式的接口,使用request.getParameter("XXX");的方法獲取參數(shù)的值,當(dāng)數(shù)據(jù)量超過幾百k的時(shí)候,接口接收不到數(shù)據(jù)或者接收為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
默認(rèn)值:
private String maxFileSize = "1MB"; private String maxRequestSize = "10MB";
這個(gè)設(shè)置是大小不限制,主要是這個(gè)設(shè)置。
server.tomcat.max-http-post-size=-1
補(bǔ)充知識(shí):spring boot post請(qǐng)求數(shù)據(jù)太大接收不到參數(shù)(參數(shù)為空)報(bào)400錯(cuò)誤。
spirng boot發(fā)送的請(qǐng)求,有的參數(shù)數(shù)據(jù)量大,有的參數(shù)數(shù)據(jù)量小。數(shù)據(jù)量大的發(fā)送不到后端,報(bào)400錯(cuò)誤。
首先說以jetty為內(nèi)嵌服務(wù)器的時(shí)候:
1、修改yml文件或者properties文件,
server.max-http-post-size=200*1024*1024,設(shè)置為200m,總夠了吧,可以按照量設(shè)置小一點(diǎn)。
Spring Boot 1.4.0.M2之后就可以使用這個(gè)屬性。適合于不修改代碼,快速重新部署。
2、在java代碼里面實(shí)現(xiàn):
@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之后可以使用這個(gè)功能。
3、設(shè)置接收數(shù)據(jù)在 request body里面。上面兩種情況適合于數(shù)據(jù)不放在request body里面的。
tomcat應(yīng)該是類似的。
參考https://stackoverflow.com/questions/36872540/spring-boot-rest-service-form-too-large
以上這篇SpringBoot http post請(qǐng)求數(shù)據(jù)大小設(shè)置操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java Swing中JDialog實(shí)現(xiàn)用戶登陸UI示例
這篇文章主要介紹了Java Swing中JDialog實(shí)現(xiàn)用戶登陸UI功能,結(jié)合完整實(shí)例形式分析了Swing使用JDialog實(shí)現(xiàn)用戶登陸UI界面窗口功能的步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-11-11Java實(shí)戰(zhàn)角色權(quán)限后臺(tái)腳手架系統(tǒng)的實(shí)現(xiàn)流程
只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+Maven+myBaits-Plus+Vue+Element-UI+Mysql實(shí)現(xiàn)一個(gè)角色權(quán)限后臺(tái)腳手架系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2022-01-01java中timer的schedule和scheduleAtFixedRate方法區(qū)別詳解
這篇文章主要為大家詳細(xì)介紹了java中timer的schedule和scheduleAtFixedRate方法區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Java并發(fā)系列之AbstractQueuedSynchronizer源碼分析(獨(dú)占模式)
這篇文章主要為大家詳細(xì)介紹了Java并發(fā)系列之AbstractQueuedSynchronizer源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Java應(yīng)用注冊(cè)成Windows服務(wù)實(shí)現(xiàn)自啟的教程詳解
這篇文章主要給大家介紹了Java應(yīng)用注冊(cè)成Windows服務(wù)實(shí)現(xiàn)自啟的教程,文中有詳細(xì)的代碼示例和圖文講解供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2024-02-02Java中使用qsort對(duì)類進(jìn)行排序的操作代碼
這篇文章主要介紹了JAVA中如何使用qsort對(duì)類進(jìn)行排序,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09