Java中restTemplate的使用 - 综合 -

当前位置:首页  >  综合  > 正文

Java中restTemplate的使用

Java中restTemplate的使用
2023-03-25 05:25:27 来源:腾讯云


(资料图片仅供参考)

原文链接

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;    }}

标签:

(责任编辑:news01)
实时:03月19日06时湖南岳阳疫情数据 阳了以后为什么会腰疼?应该怎么办?

实时:03月19日06时湖南岳阳疫情数据 阳了以后为什么会腰疼?应该怎么办?

03月19日06时湖南岳阳疫情数据阳了以后为什么会腰疼?应该怎么办?以下为详情!一、03月19日06时岳阳疫...
03-19 09:12:45
全球时讯:抖音直播公会入驻入口(抖音直播公会排名)

全球时讯:抖音直播公会入驻入口(抖音直播公会排名)

1、2019年12月以后,抖音公会就不再进行排名了,全部按照任务的形式对公会进行管理。2、选择合作的公会...
03-19 04:12:41
西热力江:对重点人的防守做得不够好 队员都想急功地去表现自己

西热力江:对重点人的防守做得不够好 队员都想急功地去表现自己

西热力江:对重点人的防守做得不够好队员都想急功地去表现自己,同曦队,cba,中国篮球,男子篮球,中国体育...
03-18 22:56:18
当前动态:中俄就乌克兰危机 能谈出什么? 具体详细内容是什么

当前动态:中俄就乌克兰危机 能谈出什么? 具体详细内容是什么

中俄就乌克兰危机,能谈出什么?今天的热度非常高,现在也是在热搜榜上了,那么具体的中俄就乌克兰危机...
03-18 19:50:06
每日热讯!美国多州拒绝接收“毒列车”废物 称安全性存疑

每日热讯!美国多州拒绝接收“毒列车”废物 称安全性存疑

海外网3月18日电据美国《国会山报》3月17日报道,美国俄亥俄州“毒列车”脱轨事故发生后,环保局授权铁...
03-18 15:56:38
平北抗日战争纪念馆门票为什么贵_平北抗日战争纪念馆门票

平北抗日战争纪念馆门票为什么贵_平北抗日战争纪念馆门票

1、鲁家峪抗日纪念馆不要门票,免费参观。2、开放时间:全天开放地址:遵化市地北头镇鲁家峪村东山鲁家...
03-18 12:50:15
全球新动态:高能资本王晓滨:探索基金新模式,为产业提供资本支持

全球新动态:高能资本王晓滨:探索基金新模式,为产业提供资本支持

王晓滨。资料图  中华女创投家联谊会名誉会长、高能资本有限公司董事长王晓滨表示,对基金新模式的探...
03-18 09:22:25
善良的嫂子3_说一说善良的嫂子3的简介

善良的嫂子3_说一说善良的嫂子3的简介

夏弥来为大家解答以下的问题,善良的嫂子3,说一说善良的嫂子3的简介,现在让我们一起来看看吧!1、《善...
03-18 05:48:46
当前焦点!王阳明心学原文及译文电子版_王阳明 心学 原文

当前焦点!王阳明心学原文及译文电子版_王阳明 心学 原文

1、无善无恶心之体,有善有恶意之动。2、知善知恶是良知,为善去恶是格物。本文就为大家分享到这里,希...
03-18 01:14:36
世界热资讯!方大特钢: 方大特钢关于召开2022年年度股东大会的通知

世界热资讯!方大特钢: 方大特钢关于召开2022年年度股东大会的通知

方大特钢:方大特钢关于召开2022年年度股东大会的通知
03-17 21:28:10
今日报丨朝饮木兰之坠露兮夕餐秋菊之落英出自_朝饮木兰之坠露兮夕餐秋菊之落英

今日报丨朝饮木兰之坠露兮夕餐秋菊之落英出自_朝饮木兰之坠露兮夕餐秋菊之落英

1、出自战国时期著名诗人屈原的代表作《离骚》“朝饮木兰之坠露兮,夕餐秋菊之落英”。2、这是屈原《离...
03-17 19:08:38
每日信息:防控近视守护成长  普瑞眼科近视防控公益行走进成都市友谊小学

每日信息:防控近视守护成长 普瑞眼科近视防控公益行走进成都市友谊小学

3月17日上午,成都普瑞眼科医生杨英应邀到成都市友谊小学开展主题为《爱保护视力远离近视》的近视防控科...
03-17 16:51:02
为1100万 母校给肄业生上了最后一课 具体是什么情况?-环球看热讯

为1100万 母校给肄业生上了最后一课 具体是什么情况?-环球看热讯

为1100万母校给肄业生上了最后一课具体是什么情况?今天的关注度非常高,直接上了热搜榜,那么具体的是...
03-17 14:51:18
突发!光伏板块大跌,晶澳德业跌停!发生了什么?-焦点播报

突发!光伏板块大跌,晶澳德业跌停!发生了什么?-焦点播报

维科网光伏讯,3月16日,A股光伏概念股再次跳水大跌。其中光伏概念板块大跌2 54%,光伏ETF龙头大跌4 6...
03-17 11:52:55
怎么把u盘做成系统_如何把u盘做成系统安装盘

怎么把u盘做成系统_如何把u盘做成系统安装盘

1、解决办法:  下载“大白菜U盘启动制作工具v5 1”软件安装到电脑上,此软件安装很简单,双击启动软...
03-17 10:16:31
全球信息:7-1!2-0!1-0!欧州足坛疯狂1夜:意甲又有3队狂飙,英超第1出局

全球信息:7-1!2-0!1-0!欧州足坛疯狂1夜:意甲又有3队狂飙,英超第1出局

7-1!2-0!1-0!欧州足坛疯狂1夜:意甲又有3队狂飙,英超第1出局,英超,意甲,欧战,曼联,欧联杯,拉齐奥,阿...
03-17 08:12:51
宝塔实业(000595):3月16日北向资金增持12.12万股

宝塔实业(000595):3月16日北向资金增持12.12万股

3月16日北向资金增持12 12万股宝塔实业。截至目前,北向资金持有宝塔实业37 32万股,占公司A股总股本的0 03%。
03-17 04:21:18
消防工程师证有效期是多少(消防工程师证有几级)

消防工程师证有效期是多少(消防工程师证有几级)

1、答:一、消防工程师分三个级别该职业资格共分三类:二级消防工程师,一级消防工程师,高级消防工程师...
03-16 23:12:10
纵深引导、高效维权!广州天河全年为消费者挽回经济损失1600多万元-当前热文

纵深引导、高效维权!广州天河全年为消费者挽回经济损失1600多万元-当前热文

纵深引导、高效维权!广州天河全年为消费者挽回经济损失1600多万元
03-16 20:22:25
杭州市消保委点名共享充电宝:收费价格不一 过度收集个人信息|每日热文

杭州市消保委点名共享充电宝:收费价格不一 过度收集个人信息|每日热文

杭州市消保委点名共享充电宝:收费价格不一过度收集个人信息
03-16 18:06:58
LOFTER被指将用户作品用于AI训练 网易致歉:伤害了创作者 争议功能下线-环球热议

LOFTER被指将用户作品用于AI训练 网易致歉:伤害了创作者 争议功能下线-环球热议

网易旗下的LOFTER日前被指将用户的作品数据用于AI训练,引发了创作者的不满,3月16日网易LOFTER发表致歉声明,
03-16 16:01:39
“只要查,绝对一查一个准”!用这种方式还房贷不可取

“只要查,绝对一查一个准”!用这种方式还房贷不可取

最近,贷款中介庞玲(化名)听到了一些风声,有的同行公司放假了,微信上认识的业务员说要请几天假,有的公司...
03-16 14:11:46
当日快讯:国家统计局:2月份商品住宅销售价格环比总体上涨

当日快讯:国家统计局:2月份商品住宅销售价格环比总体上涨

国家统计局网站消息,2023年2月份,随着政策效果逐步显现及住房需求进一步释放,70个大中城市中商品住宅...
03-16 11:49:59
世界观天下!思维列控:3月15日融资买入473.44万元,融资融券余额1.15亿元

世界观天下!思维列控:3月15日融资买入473.44万元,融资融券余额1.15亿元

3月15日,思维列控(603508)融资买入473 44万元,融资偿还526 95万元,融资净卖出53 51万元,融资余额1 15亿元。
03-16 09:55:54
茫崖:持续推动人才工作提质见效

茫崖:持续推动人才工作提质见效

茫崖:持续推动人才工作提质见效
03-16 05:06:00
音乐社团简介100字_音乐社团简介

音乐社团简介100字_音乐社团简介

1、先写上社团名称(字大些),然后写一些社团的特点和活动的日程安排,再留好地址就行了。2、总而言之...
03-16 01:02:58
天天信息:cf名字大全冷酷好听_cf好听的4个字id

天天信息:cf名字大全冷酷好听_cf好听的4个字id

欢迎观看本篇文章,小勉来为大家解答以上问题。cf名字大全冷酷好听,cf好听的4个字id很多人还不知道,现...
03-15 20:47:19
SteamDeck更新加入光追!但仅一款游戏可用-天天热讯

SteamDeck更新加入光追!但仅一款游戏可用-天天热讯

近日,SteamDeck更新了3 4 6版本系统,为《毁灭战士:永恒》带来了视觉改进,支持开启光追特效。
03-15 18:08:26
冷日村的幸福新生活 全球头条

冷日村的幸福新生活 全球头条

冷日村的幸福新生活
03-15 16:20:32
全球新消息丨瓮安县气象台发布大风蓝色预警信号【Ⅳ/一般】【2023-03-15】

全球新消息丨瓮安县气象台发布大风蓝色预警信号【Ⅳ/一般】【2023-03-15】

瓮安县气象台发布大风蓝色预警信号【Ⅳ 一般】【2023-03-15】
03-15 14:17:16

为您推荐

精彩推送