Springboot的POST、GET、PUT、DELETE请求实例
来源:互联网 发布:啊哈算法2 pdf 编辑:程序博客网 时间:2024/06/06 09:22
- 概述
- Spring的请求
- 1 请求地址映射注解
- 11 RequestMapping的属性
- 12 RequestParam
- 13 RequestBody
- 14 RequestHeader
- 1 请求地址映射注解
概述
上文我们讲了Spring Boot + gradle环境搭建,能够将项目运行起来了。我们继续往前走,接收一些常见的请求。
1 Spring的请求
前文我们的访问我们的项目直接就是用的http://localhost:8080/
,这里对于具体的项目我们可以加上项目路径并且设置端口号。在application.properties
文件中,
server.port=9090server.context-path=/retrofitclientserver
此时访问我们的项目就要使用http://localhost:9090/retrofitclientserver
,端口号可以不指定,则会使用默认的端口号8080,为http://localhost:8080/retrofitclientserver
。
1.1 请求地址映射注解
请求地址映射注解可以加在类上,也可以加在方法上,加在类上表示这个类中所有响应请求的方法都是以该地址作为父路径。
1.1.1 @RequestMapping的属性
这是一个通用的注解,支持所有的HTTP请求。这里大致讲一下常用的属性。
@AliasFor("path")String[] value() default {};@AliasFor("value")String[] path() default {};RequestMethod[] method() default {};
value和path
value
和path
是都是指请求地址。@RequestMapping("/login")
等价于@RequestMapping(path="/login")
。
占位符
然后这两个属性还支持带占位符的URL,比如:
@RequestMapping(path = "/{account}", method = RequestMethod.GET)public String getUser(@PathVariable String account)
这是参数名跟占位符名字一致的情况,不一致的话就要这样写:
@RequestMapping(path = "/{account}/{name}", method = RequestMethod.GET)public String getUser(@PathVariable("account") String phoneNumber,@PathVariable("name") String userName)
这样就把占位符绑定到参数phoneNumber
上了。
@PathVariable
这里出现了@PathVariable
,@Pathvariable
注解可以绑定占位符传过来的值到方法的参数上。
method
method属性是指请求的方式。
组合注解(RequestMapping的变形)
- @GetMapping = @RequestMapping(method = RequestMethod.GET)
- @PostMapping = @RequestMapping(method = RequestMethod.POST)
- @PutMapping = @RequestMapping(method = RequestMethod.PUT)
- @DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)
组合注解是方法级别的,只能用在方法上,我们的实例基本都用组合注解。
1.1.2 @RequestParam
用法如下:
@PostMapping(value = "login")public void login(@RequestParam String name, @RequestParam String password) { System.out.println(name + ":" + password);}
@RequestParam注解可以用来提取名为“name”的String类型的参数,并将之作为输入参数传入,这就是SpringMVC的提取和解析请求参数的能力。
我们甚至可以不用这个注解,也能只要传入参数名和方法的参数名一致,也能匹配:
@PostMapping(value = "login")public void login(String name, @RequestParam String password) { System.out.println(name + ":" + password);}
这里的name
参数没有加这个注解,实际上也匹配到了。
如果传入参数名字和方法参数名字不一致,可以给@RequestParam
的属性赋值:
@PostMapping(value = "login")public void login(@RequestParam("account") String name, @RequestParam String password) { System.out.println(name + ":" + password);}
1.1.3 @RequestBody
用法如下:
@PostMapping(path = "register")public String registerUser(@RequestBody User user) { return user.toString();}
public class User { private String name; private String password; 省略get、set、toString...}
@RequestBody
可以用来解析json字符串(还可以解析xml),并将字符串映射到对应的实体中,实体的字段名和json中的键名要对应。
注意提交请求的时候要在请求头指定content-type
为application/json charset=utf-8
。
1.1.4 @RequestHeader
@RequestHeader
注解用来将请求头的内容绑定到方法参数上。
用法如下:
@PostMapping(value = "login")public void login(@RequestHeader("access_token") String accessToken,@RequestParam String name) { System.out.println("accessToken:" + accessToken);}
头内容:
项目demo github地址:https://github.com/Jadyli/RetrofitClientServer
- Springboot的POST、GET、PUT、DELETE请求实例
- Springboot+Junit测试Http请求实例包括Get,Post,Put和Delete已及断言Assert的使用
- get,post,delete,put的http请求。
- post get delete put 请求
- Http服务器的交互请求 GET,POST,PUT和DELETE
- PYTHON的http请求,post,get,delete,put
- http请求中GET、POST、PUT、DELETE的区别
- http的四种请求方法:get, put, post, delete
- RestTemplate的get和post,put,delete请求
- Http之Get,Post,put,delete请求
- okhttp,get,post,put,delete 请求
- python发送get/post/put/delete请求
- curl模拟delete/put/post/get请求
- GET、POST、PUT、DELETE请求测试项
- HTTP请求之GET,POST,DELETE,PUT
- GET/POST/PUT/DELETE
- get/post/put/delete
- GET,POST,PUT,DELETE的区别
- Spring Data MongoDB 六:进阶Aggregation操作(上)
- # 美团点评CodeM编程大赛-题三
- [Spark]Spark RDD 指南五 持久化
- 【Java并发编程】之一:可重入内置锁
- ultraedit 注册激活
- Springboot的POST、GET、PUT、DELETE请求实例
- qstat 使用
- mui日期选择插件自定义可以选择的结束日期
- Android permission denied for window type 2002
- git reset 之 soft mixed hard选项的区别
- 17、文件系统常用命令df、du、fsck、dumpe2fs
- Python生成器 单线程协程
- js控制checkbox单选
- 收集最近用到的几个oracle函数