亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring RestTemplate 為 400 錯誤引發異常

Spring RestTemplate 為 400 錯誤引發異常

幕布斯6054654 2022-07-14 10:09:23
我們正在使用 spring 版本 4.3.9 并使用 RestTemplate 進行休息調用。我們有測試用例,當我們調用特定端點時,我們故意將內容格式錯誤(請求本身很好,有效負載的內容是故意格式錯誤的)。無論如何,在這些條件下,端點除了將其標記為 400 錯誤(錯誤請求)之外,還會返回一個包含有意義信息的響應對象。RestTemplate 看到 400 錯誤并引發 HttpClientErrorException。由于拋出此異常,因此響應對象為空。當我使用常規 apache HttpClient 調用執行相同的請求(壞數據和所有數據)時,沒有拋出異常(盡管出現 400 錯誤)并且請求對象返回了有意義的(有用的)信息。當使用廣泛的 spring 調試日志設置執行時,我可以看到有意義的信息肯定是從 RestTemplate 客戶端調用返回的,但是 RestTemplate 拋出異常,因此似乎沒有使消息對調用者可用。有意義的消息是否可能隱藏在某處的異常響應中?如果是這樣,我該如何提取它?如果沒有作為異常的一部分返回,有沒有辦法讓 RestTemplate 不拋出這個異常,而是像 HttpClient 一樣只返回響應對象?感謝您的任何回復!
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

有意義的消息是否可能隱藏在某處的異常響應中?

是的,響應的主體在異常對象中。

要獲取響應的正文,您可以使用: HttpClientErrorException.getResponseBodyAsString()HttpClientErrorException.getResponseBodyAsByteArray()方法。

檢查這個


查看完整回答
反對 回復 2022-07-14
  • 1 回答
  • 0 關注
  • 386 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號