【问题标题】:Spring Boot Json Response being cut offSpring Boot Json 响应被切断
【发布时间】:2020-10-10 10:59:05
【问题描述】:

在运行嵌入式 Tomcat 的 Spring Boot 后端中,我有一个端点,它确实从数据库中以 JSON 形式返回了相当多的数据。

我注意到请求正文的限制约为 82000 个字符。这意味着正文刚刚被切断/修剪,并且客户端由于未正确终止而得到无效的 JSON。

即使用 curl 我得到:

curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)

我可以设置任何配置来增加限制吗? ~82000 个字符并不是很多。 只是 ~82kb。

【问题讨论】:

  • 你好,可能是关于你的 tomcat 上的 maxPostSize 配置?
  • 已经尝试了以下方法:server.max-http-header-size=8KB server.tomcat.max-swallow-size=2MB server.tomcat.max-http-post-size=2MB 但没有效果。
  • 可以直接修改你的tomcat的配置吗?您也可以在application.properties 中尝试spring.servlet.multipart.max-request-size=10MB(或更多用于测试目的)。您是否有日志系统或其他可以向我们显示发送的标头的东西(目标是使用标头 Content-Type 来确定您的请求的实际大小(它在 HTTP 2 中是可选的,但某些工具和框架仍然会发送它)?
  • 添加该属性并没有改变任何东西。这是带有 -v 的 curl 输出:pastebin.com/kJ71cWgG
  • 我也有同样的问题

标签: spring spring-boot tomcat


【解决方案1】:

我以为你没有线程。尝试使用线程睡眠来获取数据。

【讨论】:

    【解决方案2】:

    对我来说,它最终是一个我能够修复的 Nginx 缓冲问题:

    server {
      location /my-endpoint {
        # https://www.getpagespeed.com/server-setup/nginx/tuning-proxy_buffer_size-in-nginx
        proxy_buffering off;
        proxy_buffers 4 1024k;
        proxy_buffer_size 512k;
        proxy_busy_buffers_size 1024k;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 2014-01-09
      • 2019-07-27
      • 2017-08-08
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      相关资源
      最近更新 更多