net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 问题解决

简述

浏览器调用接口报错  net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)

错误描述:编码模块不完整,返回浏览器的流不完整

可能原因:

1、丢包

2、响应数据被限制

3、读取流异常终止


针对可能的原因排查可以从几个方面

1、网络是否稳定

2、服务器端是否有对响应数据做限制,比如:nginx转发的数据限制,spring/Servlet的HTTP响应数据大小限制,或者是自定义拦截器的响应数据限制

3、服务器的数据限制,如Tomcat


针对以上排查,根据查阅的资料,有如下具体方式以及对应的解决办法:

>> nginx转发的数据限制

修改nginx的配置文件,在对应的路径下(没有指明就location)里面增加
proxy_buffer_size 1024k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 16 1024k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 2048k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 2048k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传

然后重启nginx


>> tomcat数据限制

修改tomcat的server.xml文件,增加maxHttpHeaderSize属性
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxHttpHeaderSize="81920"  />

然后重启 tomcat


>> spring 配置限制

根据spring boot 版本不同在application文件添加不同的配置

Spring Boot 1.3 或之前的版本,配置:
  multipart.maxFileSize = 100Mb
  multipart.maxRequestSize=150Mb

Spring Boot 1.4 版本后配置更改为:
  spring.http.multipart.maxFileSize = 100Mb 
  spring.http.multipart.maxRequestSize = 150Mb

Spring Boot 2.0 之后的版本配置修改为: 单位Mb改为MB了
  spring.servlet.multipart.max-file-size = 100MB 
  spring.servlet.multipart.max-request-size = 150MB


>> spring 加@ResponseBody 引起的流关闭

代码接口上去掉注解@ResponseBody


>> 拦截器

拦截过滤掉一些响应太大的响应


我的

原因:数据导出接口,需要导出量比较大的数据,然后异常,数据小的时候测试通过,数据量变大到一定程度,异常

接口如下:

@ResponseBody
public void exportImsirecord(@RequestBody(required = false) WarningBO warningBO, HttpServletResponse response){
    OutputStream os = response.getOutputStream();
    StringBuffer buf = new StringBuffer();
    buf.append(很多数据);
    os.write(buf.toString().getBytes("utf-8"));
}

请求后然后浏览器报错  net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)

同时后台也报错:流异常关闭

最后的解决办法是 去掉 @ResponseBody,接口变成

public void exportImsirecord(@RequestBody(required = false) WarningBO warningBO, HttpServletResponse response){
    
}

两个原因:

1、@ResponseBody 走了数据转换,有数据限制

2、过滤器 响应 ResponseBody 读取有时间限制,解析太久中断流


总结:

本质原因都是响应数据不完整导致,排查针对这个去就行,包括前端后端所有都有可能导致,常见的应该是数据配置限制了

👨‍🌾本文结束,希望有帮到阁下。更多问题可以到我博客来搜索
👉【点击搜索
👉【进入博客

  • 28
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cy谭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值