gpt4 book ai didi

spring - Spring Boot Post 方法中 Size 较大时接收字段为空

转载 作者:行者123 更新时间:2023-11-28 22:48:14 24 4
gpt4 key购买 nike

我尝试通过 POST 方法发送一个字符串到 SpringBoot 网络服务器,当字符串很小(200k)时,它可以在 Controller 端接收,而当字符串相对较大(2M)时, Controller 的字段为空,没有springBoot 日志中的任何错误消息。

Controller 代码片段是:

@PostMapping(value = "/func")
public ResponseMessage func(@RequestParam(value = "message", defaultValue = "") String message) {
if(StringUtils.isEmpty(message)) {
// alert
}
}

发件人的代码片段是:

PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
// Create socket configuration
SocketConfig socketConfig = SocketConfig.custom().setSoKeepAlive(true)
.setSoTimeout(180000).setSoReuseAddress(true).setTcpNoDelay(true).build();

// Configure the connection manager to use socket configuration either
// by default or for a specific host.
connManager.setDefaultSocketConfig(socketConfig);
// Validate connections after 1 minute of inactivity
connManager.setValidateAfterInactivity(180000);
connManager.setMaxTotal(100);
connManager.setDefaultMaxPerRoute(20);

// Create global request configuration
RequestConfig defaultRequestConfig = RequestConfig.custom()
.setCookieSpec(CookieSpecs.DEFAULT).setExpectContinueEnabled(true)
.setConnectTimeout(180000).setSocketTimeout(180000)
.setConnectionRequestTimeout(180000).build();

CloseableHttpClient hc = HttpClients.custom().setConnectionManager(connManager)
.setDefaultRequestConfig(defaultRequestConfig).setDefaultSocketConfig(socketConfig)
.build();


String encodedMsg = new String(Files.readAllBytes(Paths.get(args[0])), UTF_8);
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(Lists.newArrayList(new BasicNameValuePair("message", encodedMsg)), UTF_8);
HttpUriRequest httpPost = HttpUtils.post("http://url/func", entity);

try (CloseableHttpResponse response = hc.execute(httpPost)) {
// ...
}

我尝试在 application.properties 中添加以下请求正文大小参数,但它似乎不起作用。有什么建议么?谢谢。

multipart.maxRequestSize=30MB
multipart.maxFileSize=30MB
spring.http.multipart.maxFileSize=30Mb
spring.http.multipart.maxRequestSize=30Mb

SpringBoot:1.5.10.RELEASE

Spring :4.3.14.RELEASE

最佳答案

2MB 是 tomcat 中 Post 请求参数的默认最大大小。假设您使用的是 tomcat,可以通过以下方式关闭最大帖子大小限制设置

server.tomcat.max-http-post-size=-1

关于spring - Spring Boot Post 方法中 Size 较大时接收字段为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50074707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com