HTTP 請求中4大參數類型和接收方法。
1、請求頭參數head
請求頭參數顧名思義,是存放在請求頭中發送給服務器的參數,服務器通過解析請求頭獲取參數內容。通常會存放本次請求的基本設置,以幫助服務器理解并解析本次請求的body體。 參數形式如:
Accept-Language : zh-CN,zh;q=0.8,zh-TW;q=0.5,en-US;q=0.3,en;q=0.2
在我們的SpringBoot中,通過@RequestHeader
注解可以獲取到。
Spring Boot 讀取http headers內容
2、路徑參數path
路徑參數顧名思義,本次請求的資源路徑,緊跟請求域名的后面,服務器通過解析路徑參數獲取資源位置。路徑參數是用/
分隔的一系列字符串,其意義在于對服務器資源進行統一定位,如:
SpringBoot接收:
@PathVariabel
注解的形參名字要與路徑參數形參名字相等
不相等就用 value值來與路徑參數名字相等。
3、查詢參數query
Query代表請求的參數,URL以?key=value
的形式呈現,例如:
http://localhost:8080/api/v1/namespaces?pretty=true
中 pretty=true就是query
SpringBoot接收
get請求只能傳query參數,query參數都是拼接在請求地址上的。
4、請求體參數body
請求體參數顧名思義,是存放在請求體(在HTTP協議中用于傳輸客戶端向服務器發送的數據的部分)中發送給服務器的參數。請求體參數格式復雜多變,服務器會先根據請求頭中的 Content-Type 獲取其格式,然后再根據其格式進行解析,常見的格式如下:
Get請求只能傳Query參數,POST可以傳Query和Body(常用)兩種形式的參數。
Query的值只能是一個字符串
,不能傳遞對象類型的參數,如果參數中涉及到了傳遞對象,就要選擇Body傳參,一般json等都是Body傳參
。
SpringBoot接收
使用注解@RequestBody,接收json數據
關于接收參數三個注解的區別
@RequestBody、@RequestParam、@PathVariable
- 區別
- @RequestParam用于接收url地址傳參或表單傳參
- @RequestBody用于接收json數據
- @PathVariable用于接收路徑參數,使用{參數名稱}描述路徑參數
- 應用
- 后期開發中,發送請求參數超過1個時,以json格式為主,@RequestBody應用較廣
- 如果發送非json格式數據,選用@RequestParam接收請求參數
- 采用RESTful進行開發,當參數數量較少時,例如1個,可以采用@PathVariable接收請求路徑變量,通常用于傳遞id值
@RequestBody的詳細使用
@RequestBody的使用
學習來自
https://juejin.cn/post/7291466545305829376#heading-8