RestTemplate真实案例

1. 场景描述

现在越来越的系统之间的交互采用http+json的交互方式,以前用的比较多的HttpClient,后来用的RestTemplate,感觉RestTemplate要比httpClent简洁的多,简单介绍下,项目中正在使用的get和post调用方式。

2. 解决方案

2.1 简要说明

RestTemplate是集成在spring-web中的,因为springboot的starter已经默认加载进来,所以可以直接使用不用再配置maven的gav了。

2.2 post调用方式

2.2.1 真实代码
    public static String invoke(String url, HashMap params) throws Exception {

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.parseMediaType("application/json; charset=UTF-8"));
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        HttpEntity<String> httpEntity = new HttpEntity<>(JSONObject.toJSONString(params), headers);

        RestTemplate rst = new RestTemplate();
        ResponseEntity<String> stringResponseEntity = rst.postForEntity(url, httpEntity, String.class);

        return stringResponseEntity.getBody();
    }
2.2.2 代码说明

invoke是通用方法调用,项目中的入参是:url和map,url是调用地址,写在配置文件中;map是外围系统需要的参数,在相关类中进行封装后传过来。

2.3 get调用方式

2.3.1真实代码
    public JSONArray getUsers() throws Exception {
        JSONArray result = new JSONArray();
        try {
            RestTemplate restTemplate = new RestTemplate();
            result = restTemplate.getForObject(apiUrl + "/user/list?appCode={1}",
                    JSONArray.class, code);
        } catch (Exception e) {
        }
        return result;
    }
2.3.2 代码说明

其中参数是:url和code,根据code去查询对应集合。

2.4 RestTemplate Api说明

DELETE delete
GET getForObject
getForEntity
HEAD headForHeaders
OPTIONS optionsForAllow
POST postForLocation
postForObject
postForEntity
PUT put
any exchange
execute

一般只需记住get与post的五个就可以了(getForObject 、getForEntity、postForLocation、postForObject、postForEntity ),这几个方法有很多重载的方法,参数不一样,可根据实际情况调用。



RestTemplate真实案例

原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11182682.html

时间: 2024-08-28 18:37:23

RestTemplate真实案例的相关文章

设计模式--组合模式真实案例

所有的例子均来源与实际开发项目 本节介绍组合模式的使用–商品结果排序评分系统 首先还是重复一下:设计模式是思路,而不是一味套用,如果业务场景和功能需求恰好吻合,那最好不过:如果有偏差,一定要具体情况具体分析,更具实际场景选择合适的模式类型(注意,是类型,并不特定指某种模式,有的时候一个场景多种模式都可以做) 本节所举得例子为商品结果排序评分系统,也就是很多项目中,在比较重要任何事物查询完毕后,会有一个排序过程,比如在淘宝上搜索完商品后那个商品列表的排序过程.而且其复杂度当然远远超过数据中SQL语

ENode 2.0 第一个真实案例剖析-一个简易论坛(Forum)

前言 经过不断的坚持和努力,ENode 2.0的第一个真实案例终于出来了.这个案例是一个简易的论坛,开发这个论坛的初衷是为了验证用ENode框架来开发一个真实项目的可行性.关于ENode是什么,本文就不多介绍了,可以参考这篇文章的介绍.本文重点介绍一下ENode是如何帮助我们开发一个基于DDD+CQRS+Event Sourcing架构的应用程序的.这个论坛使用到了ENode, EQueue两个框架,EQueue是一个分布式的消息队列组件,该组件的主体思想是参考阿里的RocketMQ.当我们使用

工厂方法和观察者模式的一个真实案例

1 import java.util.ArrayList; 2 3 class Manager 4 { 5 private String name; //经理的名字 6 public Manager(String string) { 7 name=string; 8 } 9 public void update(String id) 10 { 11 System.out.println("哈哈"+id+"房子已经被买了,好开心"); 12 } 13 14 15 }

一文教会你数据库性能调优(附某大型医院真实案例)

原文:一文教会你数据库性能调优(附某大型医院真实案例) 前言 微软工程师的一个工程师曾经对性能调优有一个非常形象的比喻:剥洋葱 .我也非常认可,让我们来一层一层拨开外面它神秘的面纱. 六大因素 下面祭出的是我们在给客户分析数据库性能问题最常用的图. 看完这个图,你是不是对性能调优有了个基本的概念了.通常来讲我们会依照下面的顺序来进行分析: 硬件能力 系统规模 数据库内部因素 软件环境 这4个的顺序可以有所调整或者交换,但是对于系统的性能优化一定要从全局出发.切勿一来就深入到某一个SQL语句的优化

【转】真实案例引起的对系统健壮性的思考(张逸,2012-02-07)

大年初四(2012年1月26日)上午,我在重庆移动某营业厅的自助客户端使用招商银行信用卡为我妻子充话费(我妻子的手机已经停机).在插入信用卡并输入密码后,系统提示正在交易.大约几秒后,我的手机收到招行的短信,提示消费100元,但自助客户端仍然显示正在交易.此时的我已经有了不详的预感.果然,在等待大约一分钟,系统提示操作失败,之后系统崩溃,弹出了一个Windows命令窗口.因为我妻子的手机停机了,所以立刻可以确认上一次充值确实是失败的.而我的手机能收到信用卡的消费信息,则可以确认银行确实已经支付了

真实案例:网站遭遇DOS攻击

网站遭遇DOS攻击 一.事件背景 长假对于IT人员来说是个短暂的休整时期,可IT系统却一时也不能停,越是节假日,越可能出大问题,下面要讲述的就是一起遭受DOS攻击的案例. 春节长假刚过完,小李公司的Web服务器就出了故障.下午1点,吃完饭回来,小李习惯性的检查了Web服务器.Web服务器的流量监控系统显示下行的红色曲线,与此同时收到了邮件报警,可以判断服务器出现了状况. 根据上述问题,小李马上开始核查Web服务器的日志,尝试发现一些关于引起中断的线索.正当查询线索过程中,部门经理告诉小李,他已经

一文拆解Faas的真实案例

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文来自腾讯云技术沙龙,本次沙龙主题为Serverless架构开发与SCF部署实践 刘敏洁:具有多年云计算行业经验,曾任职于华为.UCloud等企业担任产品开发.产品经理.目前负责腾讯云API生态的推广,帮助开发者进行API网关与无服务器函数.容器.微服务等产品的结合使用,提供完整解决方案. 这次我们主要介绍面向于API网关和SCF深度结合应用,API网关与SCF结合可以形成比较完整的Serverless方案. 今天的内容分为四部分:第

4路外线(NAT+PBR真实案例)

三路电信企业宽带固定IP.一路联通企业宽带固定IP. 需求:每个二层下组成一个内网.每个内网分配一路外线(暂时不做故障转移)  设备(1台cisco3560三层交换机.一台cisco2911路由器且只有两个端口.4台二层交换机) 数据走向图: 划分5个vlan,其中4个vlan各对应下面4台二层交换机,也就是对应每个内网,第5个vlan用于扩展路由器外线接口(路由器外线接口采用多IP方案,没有用子接口) 路由器内线与三层交换机采用三层互联(内线对应的三层交换机端口是三层端口) 4个二层交换机所对

真实案例——EMOS邮件集成系统

---恢复内容开始--- 磁盘镜像技术:浪费磁盘空间 校验码机制:比如说有4块盘,留下一块盘作为校验盘,既提升了速度,又提升了冗余. 重新计算的过程是修复的过程. raid0条带 raid1镜像 校验码是系统的瓶颈那怎么办 轮换把盘作为校验码 以防止某个盘老是被读写 这一举措是Raid5与Raid4的区别 RAID简介 是一个控制器上有五个接口,对于计算机来说就相当于一个整体 廉价冗余磁盘阵列(Redunt Arrays of Inexpensive Disks) 通过硬件/软件技术,将较小/低