如何正确使用RestTemplate【十一】


theme: vue-pro

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

RestTemplate阶段性突破

之前几篇文章我们简单介绍了RestTemplate中针对不同几个请求方式提供的一些固定方法,那么我们能不能自己去指定相应的请求来调用请求呢?

答案是一定的,其实在那些固定方法中同样也是调用的自定义方法来执行的,接下来我们的任务就是学习一下RestTemplate中的exchange方法和execute方法。

本篇文章先就exchange方法进行讲解。

exchange方法参数分析

共有参数介绍:

url:访问链接Url,不过多解释。

method:访问请求类型

requestEntity:访问请求传递资源

Class\ responseType :返回参数类型class

uriVariables:url关联的一些参数

ParameterizedTypeReference\ responseType :返回参数化类型,这个大家可以自行找些资料看一下,一句两句说不明白。

exchange方法

exchange类方法足足有八个方法对外公开,其中的参数大致相同,学习起来并不难。

exchange方法是一个通用方法,目前支持的请求是GET/POST/PUT/DELETE等四种请求方式,下面来看一下具体的方法吧。

1.public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables)

此方法需要传输url、请求类型、请求资源对象、返回值类型、参数值五个参数,直接上代码示例:

User user = new User(1, 'username', 22); ResponseEntity<List> entity = restTemplate.exchange(url, HttpMethod.POST, user, List.class, "first param","two param");

2.public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType, Map<String, ?> uriVariables)

此方法需要传输url、请求类型、请求资源对象、返回值类型、map参数值五个参数,直接上代码示例:

Map<String,String> map = new HashMap<>; map.put("Frist","first param"); map.put("Two","two param"); User user = new User(1, 'username', 22); ResponseEntity<List> entity = restTemplate.exchange(url, HttpMethod.POST, user, List.class, map);

3.public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType)

此方法需要传输url、请求类型、请求资源对象、返回值类型五个参数,直接上代码示例:

User user = new User(1, 'username', 22); ResponseEntity<List> entity = restTemplate.exchange(url, HttpMethod.POST, user, List.class);

4.public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Object... uriVariables)

与上面的相同,只是传入参数略有不同,就不细说了。

5.public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Map<String, ?> uriVariables)

与上面的相同,只是传入参数略有不同,就不细说了。

6.public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType)

与上面的相同,只是传入参数略有不同,就不细说了。

7.public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, Class<T> responseType)

这个方法有些不一样,所有的参数都被封装到了requestEntity对象中传入进去,但是并没有太难理解。

8.public <T> ResponseEntity<T> exchange(RequestEntity<?> requestEntity, ParameterizedTypeReference<T> responseType)

这个跟上一个相同了,不再赘述了。

小结

今天我们又学习了exchange请求相关方法的使用方式,你是否有所收获呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ijiran

一杯咖啡太贵,一块糖就可以

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值