Java中restTemplate的使用|全球视点
2023-03-23 15:04:07 来源:腾讯云
【资料图】
原文链接
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()
:返回的是ResponseEntity
,ResponseEntity
是对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的使用|全球视点
-
电池级碳酸锂报价今日再跌10000元 均价报28万元/吨
-
键盘鼠标卡顿是怎么回事_鼠标卡顿是怎么回事 天天滚动
-
世界快看点丨如何爱护公共环境卫生
-
世界新消息丨我国发布抗心律失常药物专家共识,提出4项治疗原则
-
切尔西30年老员工难逃被裁 伯利竟迁怒场地管理员?
-
两市融资余额增加36.50亿元 全球快报
-
豆角馅的饺子怎么调馅_豆角肉馅饺子怎么调馅 今日看点
-
就是有人要卖我的游戏账号,可是游戏账号已经换绑了,但是他不给钱
-
优酷评论怎么删 环球观焦点
-
宝通科技:公司与南京八点八数字公司签署投资及合作协议 加强在虚拟数字人领域的合作|热讯
-
世界观天下!瑞可达: 关于召开2023年第二次临时股东大会的通知
-
天涯数据库,继CSDN天涯数据库被分享之后银行也爆出用户信息泄露网络
-
风控存漏洞?华泰柏瑞基金这一产品成立不足8个月累亏22%|当前速递
-
祁阳市文昌中学“三个强化”打造校园“阳光餐饮” 每日快看
-
1批次“羊爵士”牌纯羊奶粉抽检不合格
-
天天微动态丨2023年3月25日苏州高新区人才招聘会
-
经纪公司称 Jeff Thomas 死于失重坠楼,死前在阳台自拍_环球快讯
-
【世界时快讯】耐克:2023财年第三季度净利12.4亿美元,预期8.48亿美元
-
永川秀芽功效_永川秀芽功效作用介绍
推荐内容
- Java中restTemplate的使用|全球视点
- 电池级碳酸锂报价今日再跌10000元 均价报28万元/吨
- 键盘鼠标卡顿是怎么回事_鼠标卡顿是怎么回事 天
- 世界快看点丨如何爱护公共环境卫生
- 世界新消息丨我国发布抗心律失常药物专家共识,提
- 切尔西30年老员工难逃被裁 伯利竟迁怒场地管理员?
- 两市融资余额增加36.50亿元 全球快报
- 豆角馅的饺子怎么调馅_豆角肉馅饺子怎么调馅 今
- 就是有人要卖我的游戏账号,可是游戏账号已经换绑
- 优酷评论怎么删 环球观焦点
- 宝通科技:公司与南京八点八数字公司签署投资及合
- 世界观天下!瑞可达: 关于召开2023年第二次临时
- 天涯数据库,继CSDN天涯数据库被分享之后银行也爆
- 风控存漏洞?华泰柏瑞基金这一产品成立不足8个月
- 祁阳市文昌中学“三个强化”打造校园“阳光餐饮”
- 1批次“羊爵士”牌纯羊奶粉抽检不合格
- 天天微动态丨2023年3月25日苏州高新区人才招聘会
- 经纪公司称 Jeff Thomas 死于失重坠楼,死前在
- 【世界时快讯】耐克:2023财年第三季度净利12.4亿
- 永川秀芽功效_永川秀芽功效作用介绍
- 古书收藏价值_古书收藏
- 广西防城港市集中签约11个项目
- 非遗进校园 文化共传承_天天实时
- 洛克王国光之雪莉机制(洛克王国光之明曦)
- 千金药业(600479)3月21日主力资金净卖出938.94万元
- 【世界快播报】和讯个股快报:2023年03月21日 利
- 世界热门:2023天津动物园公园文化活动一览
- 蒙娜丽莎3月21日快速上涨
- 猪价涨势“坍塌”,21日北方率先“飘绿”,月底猪
- 3月20日基金净值:华夏蓝筹混合(LOF)A最新净值1.5
- 尸蹩可以吃吗(尸蹩)
- 环球新动态:着汉服游樱园 香港专列团游客开心赏
- 百度百科首页创建词条(百度百科创建词条)
- 快资讯丨收评:指数冲高回落沪指跌0.48% 两市成
- 电脑设置不自动锁屏(电脑设置不自动锁屏) 今日
- 农业发展方式五个转变_加强农业发展方式转变可以
- 世界速讯:国台办:大陆方面欢迎马英九先生来访
- 陕西省造老银元价格(2023年03月17日)-天天最新
- 今日讯!“阅”进而上 奔向未来|@傲农人,请查收
- k字开头火车的硬卧_K字头火车硬卧是什么样的呢
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
经济
-
中新网杭州10月18日电 (王题题 胡燕婕)云天收夏色,浅秋正渐浓。10月18日,浙江杭州市西湖游船有限公司推出的惠民多站点“西湖环湖游
-
中国税务机关处罚一名艺人经纪人 中新社北京10月18日电 (记者 赵建华)上海市税务局第一稽查局前期在艺人郑爽偷逃税案件检查过程中
-
中新网兰州10月18日电 (闫姣 艾庆龙 吉翔)“红山白土头,黄河向西流。”不少人疑问,天下黄河向东流,为何甘肃永靖县这段黄河却向西
-
中新网北京10月18日电 《清华城市健康设施指数》18日在北京发布。报告成果显示,城市健康设施指数领先城市以中心城市和东部沿海城市
-
中新网安徽黄山10月18日电 (刘浩 黄启宝 汪娜)10月17日至18日,安徽省黄山市当地民警先后救助国家一级保护动物白锦长尾稚和野生梅花