zoukankan      html  css  js  c++  java
  • Feign请求中报错:Request header is too large 的解决方案。

    现在我们项目中都已迁入spring boot和spring cloud。 服务间调用现在都改成feign的调用方式,但是上次在实际使用过程中出现过:Request header is too large 的情况。

    这里重现下场景:

    1,调用其他服务提供方的接口
    2,POST请求,传递的参数包含数据较大
    3,本地联调发现报错:Request header is too large

    查询一圈发现大多是建议修改tomcat中的header的最大值:

    例如:server.max-http-header-size=1048576 (参考自:https://blog.csdn.net/qq_38951372/article/details/79403868)

    但是回头想想,这并不是治本的方法,如果下次真的传递的值超过了这个怎么办??

    现在给出我的解决方案:在Feign中使用MultiValueMap作为参数的接收方,Controller无需改变。
    例如:

    1,Feign中修改参数定义

    2,服务请求方

    原因是我们使用Feign调用时,默认会将参数header中也存放一份,所以就导致了header is too large的异常,使用MultiValueMap就可以完美解决这种问题了。

  • 相关阅读:
    C#:反射
    静态和非静态类
    数据的存入取出(注册机方式)
    退出unity运行
    网络流基础
    欧拉回路
    博弈论问题
    洛谷P5304 [GXOI/GZOI2019] 旅行者
    [ZJOI2006]物流运输
    POJ3278 Catch that cow
  • 原文地址:https://www.cnblogs.com/wang-meng/p/9360811.html
Copyright © 2011-2022 走看看