溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗怎么辦

發(fā)布時(shí)間:2022-03-14 13:32:40 來(lái)源:億速云 閱讀:172 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗怎么辦,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

feign參數(shù)過(guò)多調(diào)用失敗

錯(cuò)誤信息

JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens…

通過(guò)feign去調(diào)用其他服務(wù)的時(shí)候報(bào)上面的錯(cuò)誤了,當(dāng)傳入的參數(shù)比較少的時(shí)候并沒(méi)有錯(cuò)誤,但是傳入?yún)?shù)一多就自動(dòng)走h(yuǎn)ystrix熔斷器了。

通過(guò)層層排查

報(bào)這個(gè)錯(cuò)誤的原因是因?yàn)?/h4>

JSON 解析錯(cuò)誤:非法字符((CTRL-CHAR,代碼 31)):令牌之間只允許使用常規(guī)空格(\r、\n、\t)...

json解析錯(cuò)誤了,開始想的是用一個(gè)實(shí)體類去接收對(duì)面返回的參數(shù),所以報(bào)這個(gè)錯(cuò)誤,好吧,那我用一個(gè)object去接收吧,

但是結(jié)果顯示還是照樣會(huì)走熔斷器,接著就用map去接收返回參數(shù),還是一樣,后來(lái)去百度查了說(shuō)是要配置feign,取消壓縮,

試了,沒(méi)用。最后去百度一下說(shuō)是因?yàn)閭鬏數(shù)臄?shù)據(jù)被壓縮了,只要加入feign的配置去除壓縮限制就行了??墒沁€是沒(méi)用,無(wú)奈之下只能請(qǐng)教自己的同事。

給出了兩種解決辦法

第一種:將被調(diào)用方的返回?cái)?shù)據(jù)縮小(我就是用的這種方法,但是這個(gè)方法不是長(zhǎng)久之計(jì))

第二種:使用原生的http去請(qǐng)求對(duì)面的api,網(wǎng)上有很多的工具包。

feign多參數(shù)傳遞踩坑記錄

真的是頭大的一天,看了網(wǎng)上好多feign傳參的博客,半天找不到怎么處理又傳遞基本類型又傳遞實(shí)體類的,趕緊在這寫下來(lái),可惡

場(chǎng)景

假如現(xiàn)在有一個(gè)分頁(yè)的請(qǐng)求,前端給了我們消費(fèi)端的參數(shù)有:

  • int類型的pageNum,表示分頁(yè)頁(yè)碼

  • int類型的pageSize,表示每頁(yè)數(shù)據(jù)的條數(shù)

  • 實(shí)體類的相關(guān)參數(shù)

然后我們用的是thymeleaf,所以需要一個(gè)model給前端返回分頁(yè)相關(guān)參數(shù)

現(xiàn)在的問(wèn)題是

我要把pageNum、pageSize和實(shí)體類傳遞給服務(wù)端,讓他給我分頁(yè)結(jié)果的相關(guān)參數(shù)

解決方案

1. 消費(fèi)端controller:

feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗怎么辦

這里的參數(shù)該怎么接收怎么接收

2. 消費(fèi)端feign接口對(duì)應(yīng)方法:

feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗怎么辦

  • 給兩個(gè)int類型的數(shù)據(jù)加上@RequestParam

  • 給實(shí)體類加上@RequestBody

3. 服務(wù)端controller:

feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗怎么辦

和feign接口方法一樣

  • 給兩個(gè)int類型的數(shù)據(jù)加上@RequestParam

  • 給實(shí)體類加上@RequestBody

終于是不會(huì)報(bào)錯(cuò)了xdm

以上是“feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI