第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用Feign用GET方法時RequestBody問題,以及關于HTTP的疑問

使用Feign用GET方法時RequestBody問題,以及關于HTTP的疑問

拉風的咖菲貓 2019-02-25 01:46:20
最近對單體項目進行服務化改造,使用feign作為聲明式http接口客戶端工具,但在使用GET方式時有些疑問: 客戶端代碼: @RequestLine("GET /users") public List<User> list(UserDto user); 服務端代碼 @RequestMapping(value = "/users", method = RequestMethod.GET) public List<User> list(@RequestBody User user) { return userService.getList(user); } feign分別嘗試了Java原生URLConnection,OkHttp,ApacheHttpClient三種方式: 1.URLConnection報405錯誤,說明http方法不對,但是feign配置是GET方法,查feign的日志也是用的GET方法。后來發(fā)現(xiàn)原因是URLConnection在的原因:對于有request body的GET方法,自動改為POST方法了。 2.OkHttp直接報錯:method GET must not have a request body. 3.ApacheHttpClient完美支持。 問題來了:從HTTP協(xié)議本身,沒有要求GET方法一定要用url這樣的傳參方式,也可以用request body的。 為什么html的form表單默認將Get方法的參數(shù)請到url,而不是requety body? 為什么URLConnection將有request body的GET請求轉為POST? 為什么OkHttp不支持Get方法有request body? 另外為了rest風格,所有查詢接口都是GET的,用ApacheHttpClient也是可以的。目前還沒有迭代到生產(chǎn)環(huán)境,這樣做不知道會不會有問題。 求教各位,謝謝!
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經(jīng)驗 獲得超7個贊

規(guī)范就是這么定義的,沒有什么為什么,第三方庫只是按照規(guī)范的方式去處理

查看完整回答
反對 回復 2019-03-01
?
回首憶惘然

TA貢獻1847條經(jīng)驗 獲得超11個贊

從語義的角度我們的查詢接口都用了GET方法,我們的服務器環(huán)境也是支持的。

查看完整回答
反對 回復 2019-03-01
  • 3 回答
  • 0 關注
  • 2508 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號