java get resttemplate 请求传递数组_SpringBoot终结篇:RestTemplate实践与详解,专栏最后一篇?...

告别篇

abdbe8309cfaefbcf6329251118f76af.png

结束为了更好的开始

有话要说

不善于言谈、不善笔墨、更不善交际..为何坚持写作?

虽如此,但是个人有一颗分享的心,有满腔的热情,更坚信只要坚持写作就能有所提升,就能受益于更多的人那就足够了。

赠言:未来又有何惧,编程之路需要小伙伴的相互扶持,所以徘徊在编程技能无法提升到的朋友应该试着突破下自己,让程序员发挥更大的价值。

感慨:一路走来,感谢有你,曾今有多少次想放弃这种分享(累)?曾经有多少个加班夜~回家尚需继续“奋斗”(一般晚上11点下班,再坚持写篇分享大约凌晨1点多)?

虽然已走向管理型技术岗位(工作上自己把控时间多些,可专注于技术研究),但是为什么觉得累了呢?

一切的一切只有经历的人才能更深一层的体会,不管如何2018年已过去,再多的苦言也随它而去。

感谢关注我的小伙伴,你们收获的不是一篇一篇可估量有价值的文章,而是工作当中遇到问题,我愿竭尽全力与你共同寻求解决方案,编程之路有你们不孤单,向我的811个好友致谢!加油2019。

cbdcc3870691ddd3809b3dc108bb8ea9.png

编程之路,有你不孤单

结点:伴随SpringBoot专栏(入门篇)的第19讲也是2019年的第一天,这个栏目到这就结束了。迎接我们是崭新的一年,崭新的计划,大家准备好了吗?@架构师速成记

fe2bed8f5dfd2f2afea89d9197b006e6.png

新的开始,为走的更远

​正文:

本篇将简单介绍RestTemplate中的几个常用方法,也希望在以后微服务实践过程中该技能有所帮助。

主要从以下四个方面来介绍RestTemplate的使用:

  • GET请求
  • POST请求
  • PUT请求
  • DELETE请求

Demo开始

本篇以springboot-12-resttemple模块为demo讲解(代码已上传)

4c13a7031d2070489daa96cc4264d2d5.png

demo目录

service创建

6062e1ef4570efb30c6bd8bb30f74720.png
eacb106dd2e84ec43ee6288a053791df.png

service

controller层(包含增删改查等方法,供service调用)

6afd01361e55f461ba9ba5de316e49e6.png

测试类(分别调用service中方法):

@RunWith(SpringRunner.class)@SpringBootTestpublic class Springboot12ResttempleApplicationTests {@Testpublic void contextLoads() {}@AutowiredApiService apiService;@Testpublic void testGet(){apiService.getObjectByGet();}@Testpublic void testGet2(){apiService.getForEntityByGet();}@Testpublic void testPost(){apiService.getObjectByPost();}@Testpublic void testPut(){apiService.getObjectByPut();}@Testpublic 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中,PUTdelete请求可以通过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专栏到此阶段性结束,谢谢陪伴

我在下个专栏等你,定不负众望,等你 @架构师速成记

36b75b4294a9555663d6d760c5a1cf7c.png

欢迎转发留言,说出新年想掌握的技能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值