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


目录
相关文章
|
运维 监控 Java
探索Elasticsearch在Java环境下的全文检索应用实践
【6月更文挑战第30天】在大数据背景下,Elasticsearch作为分布式搜索分析引擎,因其扩展性和易用性备受青睐。本文指导在Java环境中集成Elasticsearch,涉及安装配置、使用RestHighLevelClient连接、索引与文档操作,如创建索引、插入文档及全文检索查询。此外,还讨论了高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据全文检索。
359 0
|
Java Spring
Springboot starter开发之traceId请求日志链路追踪
能标识一次请求的完整流程,包括日志打印、响应标识等,以便于出现问题可以快速定位并解决问题。
2224 0
Springboot starter开发之traceId请求日志链路追踪
|
10月前
|
机器学习/深度学习 人工智能 运维
NeurIPS 2024 Spotlight:如何操纵时间序列预测结果?BackTime:全新的时间序列后门攻击范式
时间序列预测在交通、气候、金融市场等领域广泛应用,深度学习模型如Transformer、GNN和RNN取得了显著成果。然而,其安全性尤其是面对恶意攻击的鲁棒性问题备受关注。伊利诺伊大学香槟分校团队提出BackTime,一种针对时间序列的后门攻击范式,通过注入隐蔽触发器改变模型预测结果。BackTime具有隐蔽性、有效性和通用性,适用于多种模型。研究揭示了时间序列预测模型的安全隐患,为提升模型鲁棒性提供了新视角,但也提醒需防范潜在恶意应用。
348 96
|
11月前
|
负载均衡 监控 安全
HTTP代理IP的安全与稳定技术与策略的结合
随着科技与互联网的发展,企业对代理的需求日益增长。为加强HTTP代理IP的安全性和稳定性,可采取用户教育、使用加密协议、定期更换IP、监控可用性、设置访问控制、负载均衡、配置防火墙及定期更新维护等措施。这些方法能有效提升代理服务的安全性和可靠性。
237 7
|
数据采集 SQL DataWorks
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第5天】本文通过一家电商平台的案例,详细介绍了阿里云DataWorks在数据处理全流程中的应用。从多源数据采集、清洗加工到分析可视化,DataWorks提供了强大的一站式解决方案,显著提升了数据分析效率和质量。通过具体SQL示例,展示了如何构建高效的数据处理流程,突显了DataWorks相较于传统工具如Excel的优势,为企业决策提供了有力支持。
391 3
|
druid Java 数据库连接
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
2939 0
java报错Error attempting to get column ‘XXX’ from result set. Cause: java.sql.怎么解决?
|
XML 缓存 前端开发
别用 Filter 了,试试 Spring 自带的方式处理 CORS 跨域问题
从 CORS 到 Spring MVC 跨源资源共享(CORS) 即 Cross-Origin Resource Sharing,也常被译为跨域资源共享。作为 W3C 的标准,它允许浏览器向跨源服务器发起请求,克服了 AJAX 只能同源使用的限制。
788 0
别用 Filter 了,试试 Spring 自带的方式处理 CORS 跨域问题
java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter 增样将jar包导入
文章记录了解决Java项目中遇到的`java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter`异常的方法,即通过在项目的`WEB-INF`文件夹下创建与`classes`平级的`lib`文件夹并添加所需的jar包来解决。
java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter 增样将jar包导入
|
数据采集 数据挖掘 Python
Python中collections模块的Counter计数器:深入解析与应用
在Python的`collections`模块中,`Counter`是一个强大且实用的工具,它主要用于计数可哈希对象。无论是统计单词出现的频率,还是分析数据集中元素的分布情况,`Counter`都能提供快速且直观的结果。本文将深入解析`Counter`计数器的原理、用法以及它在实际应用中的价值。
|
人工智能 Java
Java实现图片无损任意角度旋转
Java实现图片无损任意角度旋转
415 1