网站首页 > 技术文章 正文
告别篇
有话要说
不善于言谈、不善笔墨、更不善交际..为何坚持写作?
虽如此,但是个人有一颗分享的心,有满腔的热情,更坚信只要坚持写作就能有所提升,就能受益于更多的人那就足够了。
赠言:未来又有何惧,编程之路需要小伙伴的相互扶持,所以徘徊在编程技能无法提升到的朋友应该试着突破下自己,让程序员发挥更大的价值。
感慨:一路走来,感谢有你,曾今有多少次想放弃这种分享(累)?曾经有多少个加班夜~回家尚需继续“奋斗”(一般晚上11点下班,再坚持写篇分享大约凌晨1点多)?
虽然已走向管理型技术岗位(工作上自己把控时间多些,可专注于技术研究),但是为什么觉得累了呢?
一切的一切只有经历的人才能更深一层的体会,不管如何2018年已过去,再多的苦言也随它而去。
感谢关注我的小伙伴,你们收获的不是一篇一篇可估量有价值的文章,而是工作当中遇到问题,我愿竭尽全力与你共同寻求解决方案,编程之路有你们不孤单,向我的811个好友致谢!加油2019。
结点:伴随SpringBoot专栏(入门篇)的第19讲也是2019年的第一天,这个栏目到这就结束了。迎接我们是崭新的一年,崭新的计划,大家准备好了吗?@架构师速成记
?正文:
本篇将简单介绍RestTemplate中的几个常用方法,也希望在以后微服务实践过程中该技能有所帮助。
主要从以下四个方面来介绍RestTemplate的使用:
- GET请求
- POST请求
- PUT请求
- DELETE请求
Demo开始
本篇以springboot-12-resttemple模块为demo讲解(代码已上传)
?
service创建
controller层(包含增删改查等方法,供service调用)
测试类(分别调用service中方法):
@RunWith(SpringRunner.class) @SpringBootTest public class Springboot12ResttempleApplicationTests { @Test public void contextLoads() { } @Autowired ApiService apiService; @Test public void testGet(){ apiService.getObjectByGet(); } @Test public void testGet2(){ apiService.getForEntityByGet(); } @Test public void testPost(){ apiService.getObjectByPost(); } @Test public void testPut(){ apiService.getObjectByPut(); } @Test public void testDel(){ apiService.getObjectByDel(); } }
知识汇总:
以get方法为例:发送一个GET请求,我们可以通过两种方式(第三种方式最后简单提下,但是是最灵活,最有用的一种,此篇暂不进行讨论)
1)以getForEntity的方式去请求
getForEntity的第一个参数为要调用的服务的地址,为ip/api/users?name={1}&age={2}
getForEntity第二个参数String.class表示返回的body类型是String
返回的ResponseEntity包含了响应体所映射成的对象
2) getForObject() 发送一个HTTP GET请求,返回的请求体将映射为一个对象
有时候我在调用服务提供者提供的接口时,可能需要传递参数,有两种不同的方式
可以用一个数字做占位符,最后是一个可变长度的参数,来一一替换前面的占位符
也可以前面使用name={name}这种形式,最后一个参数是一个map,map的key即为前边占位符的名字,map的value为参数值
其它三种
Post、put、Delete请求方式类似
POST请求 postForEntity和postForObject
PUT请求:restTemplate.put
DELETE请求:restTemplate.delete
在RestTemplate中,PUT\delete请求可以通过put、delete方法调用,这两者的参数和前面介绍的getForEntity方法的参数基本一致,只是put、delete方法没有返回值而已。
使用exchange指定调用方式
restTemplate.exchange( String url, HttpMethod method, HttpEntity requestEntity, Class responseType, Object uriVariables[] ) 说明: 1)url: 请求地址; 2)method: 请求类型(如:POST,PUT,DELETE,GET); 3)requestEntity: 请求实体,封装请求头,请求内容 4)responseType: 响应类型,根据服务接口的返回类型决定 5)uriVariables: url中参数变量值
这种方式因为是最灵活的一种,现在我们采用是这种方式调用,感兴趣的可以了解下。
End
代码下载:https://github.com/shinians/springboot-demos
下个栏目决定精心打磨,做出更加优质原创文章,SpringBoot专栏到此阶段性结束,谢谢陪伴
我在下个专栏等你,定不负众望,等你 @架构师速成记
猜你喜欢
- 2024-10-13 谈谈springboot 获取前端json数据几种方法
- 2024-10-13 在Spring Boot中如何获取到Request对象?
- 2024-10-13 SpringBoot:如何优雅地进行响应数据封装、异常处理
- 2024-10-13 SpringBoot实现接口防抖的几种方案,杜绝重复提交
- 2024-10-13 @PostMapping @GetMapping注解 postmapping注解接收参数
- 2024-10-13 如何在SpringBoot中动态过滤JSON响应正文
- 2024-10-13 WebSocket 集群解决方案 websocket500
- 2024-10-13 SpringBoot跨系统调用接口方案 springboot跨越设置
- 2024-10-13 SpringBoot如何优雅的进行参数校验(一)
- 2024-10-13 IntelliJ IDEA必装插件以及SpringBoot使用小技巧合集
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)