現在我們項目中都已遷入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就可以完美解決這種問題了。
