当前位置:首页>滚动 > >正文

Java中restTemplate的使用

  • 2023-03-27 10:17:52来源:腾讯云


【资料图】

原文链接

GitHub项目地址

Gitee项目地址

本文介绍restTemplate基础用法。

Java中get和post的用法请参考:Java中Get和Post的使用

1 提供get/post接口

1.1 Controller

@RestController@RequestMapping("/homepage")public class MyController {    @Autowired    MyService myService;    // 提供get接口    @GetMapping("/provideGet")    public Map provideGet(){        return myService.provideGet();    }    // 提供post接口    @PostMapping("/providePost")    public Map providePost(@RequestParam("number") int number, @RequestParam("name") String name) {        return myService.providePost(number, name);    }    // 提供map参数的post接口    @PostMapping("/providePostByMap")    public Map providePostByMap(@RequestParam Map map) {        return myService.providePostByMap(map);    }    // 调用get接口    @GetMapping("/useGet")    public Map useGet() {        return myService.useGet();    }}

1.2 Service

@Service@EnableSchedulingpublic class MyService {    public Map provideGet() {        Map res = new HashMap<>();        res.put("number", "3");        res.put("name", "张三get");        System.out.println("provideGet res:" + res + "\n");        return res;    }    public Map providePost(int number, String name) {        Map res = new HashMap<>();        res.put("number", number);        res.put("name", name);        return res;    }    public Map providePostByMap(Map map) {        int number = map.get("number") == null ? 0 : Integer.parseInt((String) map.get("number"));        String name = map.get("name") == null ? "" : (String) map.get("name");        Map res = new HashMap<>();        res.put("number", number);        res.put("name", name);        System.out.println("providePostByMap res:" + res + "\n");        return res;    }}

2 调用get/post接口

使用restTemplate调用get/post接口。

getForObject():返回值是HTTP协议的响应体getForEntity():返回的是ResponseEntityResponseEntity是对HTTP响应的封装,除了包含响应体,还包含HTTP状态码、contentType、contentLength、Header等信息

2.1 Controller

@RestController@RequestMapping("/homepage")public class MyController {    @Autowired    MyService myService;    // 调用get接口    @GetMapping("/useGet")    public Map useGet() {        return myService.useGet();    }    // 调用get接口验证账号密码    @GetMapping("/useGetByPsw")    public Map useGetByPsw() {        return myService.useGetByPsw();    }    // 调用post接口    @PostMapping("/usePost")    public Map usePost() {        return myService.usePost();    }}

2.2 Service

@Service@EnableSchedulingpublic class MyService {    @Resource    private RestTemplate restTemplate;    String getURL = "http://localhost:8081/homepage/provideGet";    String postURL = "http://localhost:8081/homepage/providePostByMap";    public Map useGet() {        // getForObject返回值是HTTP协议的响应体        String strObject1 = restTemplate.getForObject(getURL, String.class); //无参        JSONObject jsonObject1 = JSONObject.parseObject(strObject1);        MultiValueMap sendData = new LinkedMultiValueMap<>();        sendData.add("number", "3");        sendData.add("name", "张三post");        String strObject2 = restTemplate.getForObject(getURL, String.class, sendData); // 带参        JSONObject jsonObject2 = JSONObject.parseObject(strObject2);        // getForEntity返回的是ResponseEntity,是对HTTP响应的封装        ResponseEntity responseData = restTemplate.getForEntity(getURL, ResponseResult.class);        Map returnData = new HashMap<>();        returnData.put("StatusCode:", responseData.getStatusCode());        returnData.put("Body:", responseData.getBody());        System.out.println("useGet jsonObject1:" + jsonObject1 + "\n");        System.out.println("useGet jsonObject2:" + jsonObject2 + "\n");        System.out.println("useGet responseData:" + responseData + "\n");        System.out.println("useGet returnData:" + returnData + "\n");        return returnData;    }    public Map useGetByPsw() {        RestTemplateBuilder builder = new RestTemplateBuilder();        RestTemplate restTemplate = builder.basicAuthentication("username", "password").build();        // getForEntity返回的是ResponseEntity,是对HTTP响应的封装        ResponseEntity responseData = restTemplate.getForEntity(getURL, ResponseResult.class);        Map returnData = new HashMap<>();        returnData.put("StatusCode:", responseData.getStatusCode());        returnData.put("Body:", responseData.getBody());        System.out.println("useGetByPsw returnData:" + responseData + "\n");        System.out.println("useGetByPsw returnData:" + returnData + "\n");        return returnData;    }    public Map usePost() {        //RestTemplate在postForObject时,用MultiValueMap,不可使用HashMap。        MultiValueMap sendData = new LinkedMultiValueMap<>();        sendData.add("number", "3");        sendData.add("name", "张三post");        // getForObject返回值是HTTP协议的响应体        String strObject = restTemplate.postForObject(postURL, sendData, String.class);        JSONObject jsonObject = JSONObject.parseObject(strObject);        // getForEntity返回的是ResponseEntity,是对HTTP响应的封装        ResponseEntity responseData = restTemplate.postForEntity(postURL, sendData, ResponseResult.class);        Map returnData = new HashMap<>();        returnData.put("StatusCode:", responseData.getStatusCode());        returnData.put("Body:", responseData.getBody());        System.out.println("usePost jsonObject:" + jsonObject + "\n");        System.out.println("usePost responseData:" + responseData + "\n");        System.out.println("usePost returnData:" + returnData + "\n");        return returnData;    }}

标签:

延伸阅读

推荐阅读

Java中restTemplate的使用

原文链接GitHub项目地址Gitee项目地址本文介绍restTemplate基础用法

生猛、血腥的“重口版昆池岩”,韩国电影《活命直播》 当前报道

直播是时下最为火爆的行业,但直播圈的环境也随着人们的涌入变得愈加病态疯狂。有装疯卖傻的、有扮丑审丑的、有抽象非主流的、有擦边软涩情的

大学生心理健康状况调查出炉!升学成最大风险因素

日前,中国科学院心理研究所、社会科学文献出版社联合发布我国第三本心理健康蓝皮书。睡眠与心理健康的关系显示,睡眠质量较好的学生的抑郁和

今日挚友英文怎么说(挚友英文是什么) 世界头条

挚友英文怎么说,挚友英文是什么很多人还不知道,现在让我们一起来看看吧!1、bosomfriend或bestoffriends或closefriends或

微星gtx1060 6g显卡_gtx1060 6g显卡多少钱 焦点短讯

1、采用同样GPU的不同品牌显卡主要性能差别不大。2、就显卡品牌来说,华硕、技嘉和微星当属国内排名前三的一线品牌,其显卡

世界速读:为什么有钱人偏爱买房而不是炒股?

为什么有钱人偏爱买房而不是炒股?,炒股,买房,股市,股票

东江时报

1、《东江时报》是由惠州日报社主管主办、主要面向广东省惠州市发行的都市报。2、于2006年11月28日试刊,2007年元

约1.7亿年前的“花”被发现!名字很美丽 看看你认识吗?

约1 7亿年前的“花”被发现!名字很美丽看看你认识吗?

要闻:金隅冀东水泥2023届春季校园招聘——临澧冀东水泥有限公司

公司简介临澧冀东水泥有限公司建设规模为1×4500T D新型干法水泥熟料生产线带纯低温余热发电系统,年产熟料150万吨,年产水泥200万吨,年处置危

焦点播报:宁德时代2022业绩说明会:曾毓群爆猛料 | 电动势

宁德时代召开了2022年年度业绩网上说明会,宁德时代董事长、总经理曾毓群在会上对行业部分热点话题进行了回应,同时也爆了不少猛料

抖音14分钟光剑变装视频是什么梗 天天时快讯

最近抖音上面有很多关于光剑变装视频火了,而且还有一些挑战引起不少网友们参与。抖音14分钟光剑变装视频是什么梗?最近有关14分钟光剑变装视

如图所示在三角形abc中角acb等于90度_如图所示在三角形abc中 每日热门

一、题文如图所示,在三角形ABC中,D为BC的中点,CE=AE,AD和BE相交于F点,已知三角形ABC的面积为42平方厘

动态焦点:配1.6T插混,百公里油耗2.48L,顶配售22.77万,标致508LPHEV

在国内B级车市场中,大众帕萨特、迈腾以及本田雅阁、丰田凯美瑞,可谓是诸多消费者重点考虑的车型。出自主流品牌,知名度认可度高成为了它们的

买入!不断买入

买入!不断买入,加仓,补仓,基金

游鸿明下沙歌词

1、歌词:每个人都有无法忘记的人思念会像细沙穿过你的灵魂轻轻开了门只有风雨声我觉得爱情让人变得残忍原本相爱的人变成心头的针越是爱的真越

2023年海口骑楼艺术游乐汇主题月活动圆满收官

2023年海口骑楼艺术游乐汇主题月活动圆满收官

上学歌 歌谱_上学歌歌普

1、歌谱如下图:歌词是:太阳当空照花儿对我笑小鸟说早早早你为什么背上小书包我去上学校天天不迟到爱学习爱劳动长大要为人民立

天天热门:哈兰德的秘密武器:猫头鹰般敏锐的洞察力

如果让你把哈兰德比作一种动物,你会想到什么?狮子?鲨鱼?不管怎么说,肯定应该是某种强大的捕食者对吧?但有没有一种可能,他的风格更像猫

销售图书都有哪些渠道 每日播报

销售图书的渠道主要有以下几种:1、各地大型图书馆,一般有借阅室和销售专柜等;2、各大图书销售型网站,比如当当网、亚马逊等网站,就是专门

中国(北京)高新视听产业园版权工作站揭牌

中国(北京)高新视听产业园版权工作站揭牌仪式24日在北京经济技术开发区举行。陈建摄中新网北京3月25日电(郑云陈建)中国(北京)高新视听产业园

3比0!U17国少以小打大完胜,杨晨喜迎核心归位,对手点赞 环球速讯

继4比1战胜海湾U19队后,国少又以3比0完胜福尔森西班牙人U19队,取得本次迪拜拉练的第2场胜利。2天后,国少再接再厉,凭借王钰栋、王昊斌、钱

微资讯!中国哪个城市更适合吃货旅行?

“民以食为天”,这是中华民族古老的传统。因此,在我国的任何一个城市,甚至是小小的县城,基本都有自己独特的美食和饮食文化。如果要说中...

环球新消息丨莫泊桑项链主旨

莫泊桑《项链》主旨:通过玛蒂尔德追求奢华而遭受的不幸来讽刺小资产阶级的虚荣心,同时谴责了资本主义社会不良的价值观。《项链》是一篇短篇小

禅城消费市场五大趋势

今年以来,禅城消费市场全面复苏,各大商圈烟火气升腾。不过,和以前相比,人们的消费理念、消费行为和生活方式都发生了不少改变。新变化催生

股票行情快报:海源复材(002529)3月24日主力资金净买入336.66万元-世界球精选

截至2023年3月24日收盘,海源复材(002529)报收于16 1元,上涨1 96%,换手率1 78%,成交量4 63万手,成交额7407 92万元。

中国平安:2023年度长期服务计划完成股票购买 耗资44.51亿元 世界消息

中证网讯(记者黄一灵)3月24日晚,中国平安公告称,公司2023年度长期服务计划于2023年3月16日至2023年3月23日通过二级市场完成购股,共购得本公

拟10派55元 硕世生物(688399.SH)2020年度净利润升878.52%至8.2亿元-天天最新

格隆汇3月25日丨硕世生物发布2020年年度报告,实现营业收入17 40亿元,同比增长502 39%;归属于母公司的净利润8 20亿元,同比增长878 52%;归

珊瑚无法逃避气候变化 尽管它具有天然的适应能力

一项新的研究表明,尽管珊瑚具有天然的适应能力,但即使是温和的全球变暖也可能看到我们的珊瑚礁遭到破坏。来自惠灵顿维多利亚大

全球即时:润丰股份: 东北证券股份有限公司关于山东潍坊润丰化工股份有限公司2022年度募集资金存放与使用情况的专项核查报告

润丰股份:东北证券股份有限公司关于山东潍坊润丰化工股份有限公司2022年度募集资金存放与使用情况的专项核查报告

焦点速读:招生技巧有哪些

1、招生技巧介绍法:是用学校综合实力来宣传学校的一种招生方法和招生技巧,例如将学校的管理、教学质量等实情向生源阐明,介绍法是招生宣传最

猜您喜欢

Copyright ©  2015-2022 华中服装网版权所有  备案号:京ICP备12018864号-26   联系邮箱:2 913 236 @qq.com