feign.RetryableException: Incomplete output stream executing POST XXXX

客户端在调用feign接口时,项目接口莫名其妙出现feign.RetryableException: Incomplete output stream executing POST  XXXX,错误截图如下:

查询半天常见的解决办法有两个:

1)、因为原来Feign采用JDK原生HttpURLConnection向下游服务发起http请求,使用Apache HttpClient替换掉原生的HttpURLConnection。

①、pom.xml新增依赖

        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

②、yml文件新增配置:

        feign:
          httpclient:
            enabled: true

2)、Feign的调用分为两层:Ribbon的调用和Hystrix的调用,增加连接超时时长:

        #ribbon的超时时间

        ribbon:
          ReadTimeout: 600000
          ConnectTimeout: 600000

        #hystrix的超时时间
        hystrix:
          command:
            default:
              execution:
                timeout:
                  enabled: true
                isolation:
                  thread:
                    timeoutInMilliseconds: 300000

上面两个方法试了之后还是没有解决问题,后面才发现同事加了拦截器处理feign请求头参数:

在百度的时候确认遇到有相同的帖子,且跟踪源码的时候发现请求头Content-Length有两个值,请求头中删掉Content-Length参数,让feign接口自己处理这个参数,问题就此解决。

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值