在使用feign的时候 出现这个错误 记录一下

原代码如下

import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;/*** ***************************************************** @Auther: * @Descipion: * @CreateDate: * *****************************************************/
public class FeignBasicAuthRequestInterceptor implements RequestInterceptor {@Overridepublic void apply(RequestTemplate requestTemplate) {ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();Enumeration<String> headerNames = request.getHeaderNames();if (headerNames != null) {while (headerNames.hasMoreElements()) {String name = headerNames.nextElement();String values = request.getHeader(name);requestTemplate.header(name, values);}}}}

因为服务之间调用需要携带一些用户信息之类的 所以实现了Feign的RequestInterceptor拦截器复制请求头,复制的时候是所有头都复制的,可能导致Content-length长度跟body不一致. 所以只需要判断如果是Content-length就跳过

修改后代码如下

import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;/*** ***************************************************** @Auther: zianY* @Descipion: TODO* @CreateDate: 2021-01-22* *****************************************************/
public class FeignBasicAuthRequestInterceptor implements RequestInterceptor {@Overridepublic void apply(RequestTemplate requestTemplate) {ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();Enumeration<String> headerNames = request.getHeaderNames();if (headerNames != null) {while (headerNames.hasMoreElements()) {String name = headerNames.nextElement();String values = request.getHeader(name);// 跳过 content-lengthif (name.equals("content-length")){continue;}requestTemplate.header(name, values);}}}}

参考文章:

Feign报错feign.RetryableException: too many bytes written executing

用了这么久HTTP, 你是否了解Content-Length?

feign.RetryableException: too many bytes written executing POST相关推荐

  1. 转发: Feign报错feign.RetryableException: too many bytes written executing

    Feign报错feign.RetryableException: too many bytes written executing SpringCloud Feign调用报错feign.Retryab ...

  2. Feign报错feign.RetryableException: too many bytes written executing

    Feign报错feign.RetryableException: too many bytes written executing SpringCloud Feign调用报错feign.Retryab ...

  3. feign.RetryableException: too many bytes written executing

    fegin 远程调用报错 feign.RetryableException: too many bytes written executing POST - 解决办法 pom中添加依赖 <dep ...

  4. SpringCloud Feign调用报错feign.RetryableException: too many bytes written executing

    因为服务之间调用需要携带一些用户信息之类的 所以实现了Feign的RequestInterceptor拦截器复制请求头,复制的时候是所有头都复制的,可能导致Content-length长度跟body不 ...

  5. Request processin g failed; nested exception is feign.RetryableException: too many bytes written

    错误信息: 2020-09-08 14:07:14.718 ERROR 16146 --- [io-12000-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet ...

  6. springboot feign too many bytes written executing

    报错 springboot feign too many bytes written executing 解決办法 <dependency><groupId>io.github ...

  7. feign.RetryableException: Connection refused (Connection refused) executing GET http://localhost:909

    feign远程调用异常问题: feign.RetryableException: Connection refused (Connection refused) executing GET http: ...

  8. feign.RetryableException null executing post

    feign调用遇到的问题,该文为转载,记录一下 feign.RetryableException: null executing GET http://****/cr**t/e**/cre****ou ...

  9. feign.RetryableException: Read timed out executing POST http://......

    问题描述 SpringCloud微服务之间远程调用报错超时. feign.RetryableException: Read timed out executing POST http://...... ...

最新文章

  1. Learning to Rank 中Listwise关于ListNet算法讲解及实现
  2. Noip2016day1 天天爱跑步running
  3. Linux安装MySQL8.0
  4. redis 高可用
  5. 今日讨论:时间紧,工作量太大,作为测试该怎么办?
  6. server.mappath 与page命名空间说明
  7. 分布式事务的四种解决方案,值得参考!
  8. python音乐推荐系统_音乐推荐系统
  9. STM8单片机的中断优先级
  10. 吐纳六字气法的形成与发展
  11. ansi、unico、utf8
  12. JS中各种width和height的区别
  13. 大众-OBD-接口位置
  14. Mysql 与ES(Elastic Search)对比
  15. 12. linux系统管理(1)
  16. 用python搭建一个服务器
  17. 宜家新型智能灯泡被指易遭黑客入侵
  18. java-php-python-ssm星星电影购票网站计算机毕业设计
  19. python矩阵中找满足条件的元素_从numpy数组中取出满足条件的元素示例
  20. 系统消息的发送和接收

热门文章

  1. Kali自带屏幕截图功能
  2. icode编程图形化|一级训练场|基础训练2
  3. 教妹学Java(九):一文搞懂Java中的基本数据类型
  4. 2022-2028年中国教育行业市场行情动态及投资潜力研究报告
  5. 从零开始搭建Cydia软件源+制作deb安装包
  6. 通过wifi热点软件分享网络时,重启的功效
  7. 【180627】VC++坦克大决战源码(音效+地图)
  8. 尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程,map、mapPartitions、mapPartitionsWithIndex、flatMap、glom、groupBy)】
  9. 从ST官网获取标准外设库以及官方例程
  10. linux中FT4232H设备驱动添加,USB转4串口芯片FT4232HL,FT4232HQ