1. 程式人生 > >Feign請求中報錯:Request header is too large 的解決方案。

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的最大值:

但是回頭想想,這並不是治本的方法,如果下次真的傳遞的值超過了這個怎麼辦??

現在給出我的解決方案:在Feign中使用MultiValueMap作為引數的接收方,Controller無需改變。
例如:

1,Feign中修改引數定義

2,服務請求方

原因是我們使用Feign呼叫時,預設會將引數header中也存放一份,所以就導致了header is too large的異常,使用MultiValueMap就可以完美解決這種問題了。