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就可以完美解決這種問題了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM