您好,登錄后才能下訂單哦!
這篇文章主要介紹feign參數過多導致調用失敗怎么辦,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens…
通過feign去調用其他服務的時候報上面的錯誤了,當傳入的參數比較少的時候并沒有錯誤,但是傳入參數一多就自動走hystrix熔斷器了。
通過層層排查
JSON 解析錯誤:非法字符((CTRL-CHAR,代碼 31)):令牌之間只允許使用常規空格(\r、\n、\t)...
json解析錯誤了,開始想的是用一個實體類去接收對面返回的參數,所以報這個錯誤,好吧,那我用一個object去接收吧,
但是結果顯示還是照樣會走熔斷器,接著就用map去接收返回參數,還是一樣,后來去百度查了說是要配置feign,取消壓縮,
試了,沒用。最后去百度一下說是因為傳輸的數據被壓縮了,只要加入feign的配置去除壓縮限制就行了。可是還是沒用,無奈之下只能請教自己的同事。
第一種:將被調用方的返回數據縮小(我就是用的這種方法,但是這個方法不是長久之計)
第二種:使用原生的http去請求對面的api,網上有很多的工具包。
真的是頭大的一天,看了網上好多feign傳參的博客,半天找不到怎么處理又傳遞基本類型又傳遞實體類的,趕緊在這寫下來,可惡
假如現在有一個分頁的請求,前端給了我們消費端的參數有:
int類型的pageNum,表示分頁頁碼
int類型的pageSize,表示每頁數據的條數
實體類的相關參數
然后我們用的是thymeleaf,所以需要一個model給前端返回分頁相關參數
我要把pageNum、pageSize和實體類傳遞給服務端,讓他給我分頁結果的相關參數
1. 消費端controller:
這里的參數該怎么接收怎么接收
2. 消費端feign接口對應方法:
給兩個int類型的數據加上@RequestParam
給實體類加上@RequestBody
3. 服務端controller:
和feign接口方法一樣
給兩個int類型的數據加上@RequestParam
給實體類加上@RequestBody
終于是不會報錯了xdm
以上是“feign參數過多導致調用失敗怎么辦”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。