1. 程式人生 > >springboot學習二:常用http請求

springboot學習二:常用http請求

傳送門:springboot開發學習準備
通過上一篇的準備,我們完成了一個最基本的springboot web專案搭建,這次主要是瞭解springboot常用的http介面開發方式

一. 安裝postman

為了測試各種請求方式,這裡使用谷歌外掛 postman,這個工具的作用就是實現各種請求傳送方式.如果你有其它測試工具可以跳過
官網下載: https://www.getpostman.com, 點選 download app,選擇對應的版本下載

二. 常用http請求接收方式

1.restful風格get請求

@GetMapping(path = "test1/{user_name}/{password}")
Object test1(@PathVariable("user_name") String userName, @PathVariable String password){
    Map map = new HashMap();
    map.put("userName",userName);
    map.put("password",password);
    return map;
}
  1. @GetMapping是@RequestMapping子類,這裡相當於 @RequestMapping(path = “/{user_name}/{password}”,method = RequestMethod.GET)
    相對的還有 @PostMapping @PutMapping 和#DeleteMapping
  2. @PathVariable 接收引數標籤,可以設定value別名,不寫value值預設按引數名接收
  3. 可以在{}前面新增固定值防止資料洩露如 @GetMapping(path = “test1/aaa{user_name}/bbb{password}”)

2. 引數在請求行

數在請求行後以 ?key1=value1&key2=value2 形式提交

@RequestMapping("test2")
Object test2(@RequestParam(defaultValue = "name") String userName,@RequestParam(required = true) String password,String age){
    Map map = new HashMap();
    map.put("userName",userName);
    map.put("password",password);
    map.put("age",age);
    return map;

}
  1. @RequestMapping表示請求方式無限制(可以是get或post或其它)
  2. @RequestParam 對引數進行設定,不寫預設對映引數名 屬性:name和value 都是配置對映名, defaulValue 引數為空或不傳時的預設值, required=true 表示引數必填

3. 使用封裝類接收

@RequestMapping("test3")
Object test3(@RequestBody User user){
    return user;
}
  1. user類成員變數必須與引數一致,並提供set/get方法
  2. 使用 @RequestBody 自動封裝物件
  3. 請求方式必須使用head格式Content-Type: application/json

4.使用HttpServletRequest獲取請求引數

@RequestMapping("test5")
Object test5(HttpServletRequest request){
    Map map = new HashMap();
    String userName = request.getParameter("userName");
    String password = request.getParameter("password");
    map.put("userName",userName);
    map.put("password",password);
    return map;
}

5. 獲取http頭資訊head

@RequestMapping("test4")
Object test4(@RequestHeader("Content-Type") String headMessage,@RequestHeader("token") String token,String id){
    Map map = new HashMap();
    map.put("headMessage",headMessage);
    map.put("token",token);
    map.put("id",id);
    return map;
}

總結:如果專案使用restful風格,則使用方式1,常用的介面開發模式是方式2和方式4,相對的更加靈活方便