如何正确使用RestTemplate【十一】

简介: 我们能不能自己去指定相应的请求来调用请求呢,其实在那些固定方法中同样也是调用的自定义方法来执行的,接下来我们的任务就是学习一下RestTemplate中的exchange方法和execute方法。本篇文章先就exchange方法进行讲解。

RestTemplate阶段性突破


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


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


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


exchange方法参数分析


共有参数介绍:


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

method:访问请求类型

requestEntity:访问请求传递资源

Class<T> responseType:返回参数类型class

uriVariables:url关联的一些参数

ParameterizedTypeReference<T> 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请求相关方法的使用方式,你是否有所收获呢?


目录
相关文章
|
7月前
|
Java Spring 容器
【二十二】springboot整合拦截器实战并对比过滤器
【二十二】springboot整合拦截器实战并对比过滤器
84 0
|
7月前
|
Java Spring
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
134 0
SpringMVC入门到实战------ 十一 拦截器的使用
这篇文章介绍了SpringMVC中拦截器的使用,包括拦截器的配置、拦截器的三个抽象方法`preHandle`、`postHandle`和`afterCompletion`的作用,以及多个拦截器的执行顺序和规则。
SpringMVC入门到实战------ 十一 拦截器的使用
|
缓存
RestTemplate请求访问简单使用
RestTemplate请求访问简单使用
99 1
|
7月前
|
前端开发 Java 数据库连接
【1024程序员节】RestFul,mvc拦截器,SSM基本整合-学习笔记
【1024程序员节】RestFul,mvc拦截器,SSM基本整合-学习笔记
79 1
|
JSON Java 数据格式
SpringBoot使用RestTemplate访问第三方接口
SpringBoot使用RestTemplate访问第三方接口
SpringBoot使用RestTemplate访问第三方接口
|
负载均衡 Java Apache
SpringCloud极简入门-使用RestTemplate实现服务通信
目前除了Eureka Server以外我们的微服务有订单服务springcloud-order-server-1030,和用户服务springcloud-user-server-1020 , 我们就用这两个服务来演示微服务的通信,他们的调用关系应该是:浏览器 -> 订单服务 -> 用户服务,
159 0
|
JSON 编解码 Java
小白一看就会的Spring的RestTemplate的使用
您好,我是码农飞哥,感谢您阅读此文。作为一名Java开发者,我们怎么都绕不开调用外部接口的场景,调用的方式要么是通过Http协议来调用,要么是通过RPC协议来调用,通过Http协议调用的话我们就需要用到Http的Api。比较常用的有Apache的HttpClient和原生的HttpURLConnection。这些Api都比较好用,但是我们今天要介绍一种更加好用API,Spring自带的RestTemplate,能力更强,使用更方便。
630 0
小白一看就会的Spring的RestTemplate的使用
|
算法 Java 开发者
LoadBalanced实现的原理|学习笔记
快速学习LoadBalanced实现的原理
LoadBalanced实现的原理|学习笔记
|
网络架构
RestTemplate用法
RestTemplate用法