您好,登錄后才能下訂單哦!
這篇文章主要介紹feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗怎么辦,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
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ò)層層排查
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)上有很多的工具包。
真的是頭大的一天,看了網(wǎng)上好多feign傳參的博客,半天找不到怎么處理又傳遞基本類型又傳遞實(shí)體類的,趕緊在這寫下來(lái),可惡
假如現(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ù)
我要把pageNum、pageSize和實(shí)體類傳遞給服務(wù)端,讓他給我分頁(yè)結(jié)果的相關(guān)參數(shù)
1. 消費(fèi)端controller:
這里的參數(shù)該怎么接收怎么接收
2. 消費(fèi)端feign接口對(duì)應(yīng)方法:
給兩個(gè)int類型的數(shù)據(jù)加上@RequestParam
給實(shí)體類加上@RequestBody
3. 服務(wù)端controller:
和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è)資訊頻道!
免責(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)容。