Java中restTemplate的使用
(相关资料图)
原文链接
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; }} 关键词:
上一篇:请问垂钓翁声望怎么开启
下一篇:最后一页
- 下半年房企净现金流将显著为负 违约风险难有实质性下降
- 徐州荣凯为南京荣盛置业提供不超过11亿元担保
- 天房发展收上交所问询函 包含转让吉利大厦44.81%股权事项
- 合景泰富回应整售写字楼:公司正常计划,并非为筹资
- 美好置业:延期至6月28日前回复深交所问询函
- 青岛公积金新政:首套住房贷款额度最高可达80万元
- 杭州:无房职工家庭公积金贷款购房最高可贷120万元
- 我爱我家全资持股上海相寓企业集团 后者注册资本2.5亿
- 龙湖集团副总裁温介邦已离职 此前兼任工程安全管理团队负责人
- 碧桂园拟以现金要约回购今年到期的6.834亿美元票据
-
世界通讯!【北地殉国】《三国演义》第一百十八回出场人物
哭祖庙一王死孝入西川二士争功刘谌刘璿刘瑶刘琮(蜀,刘禅三子)刘瓚刘恂刘璩邓良蒋显李虎崔夫人(刘谌之妻)张峻第一百十八回非三国时期出场
-
基金投顾来了
【免责声明:本栏目仅为投资者教育目的而发布,不构成任何投资建议。投资者不应以该等信息取代其独立判断或仅根据该等信息做出决
-
《看不见的真相》诡异深宫合影通关方法
最近很多玩家都有求助《看不见的真相》诡异深宫合影通关方法的攻略,下面九游小编就来详细的为大家讲解一下,一起来看看吧。这款游戏中,新活
-
动态:独山房产网最新消息(独山房产网)
独山房产网最新消息,独山房产网这个很多人还不知道,现在让我们一起来看看吧!1、你可以等一下,李记集团要在独山城南修一个小区,用地有300亩
-
正月十九是观音菩萨生日吗 纪念菩萨代表慈悲善良
正月十九正在靠近我们身边,本身这个日子就是对中国人而言,具有特殊意义的日子,其中会有很多的风俗是人们要去了解的,很多人会有疑惑,这一
-
重庆电子工程职业学院建筑与材料学院团队在第十三届“挑战杯”中国大学生创业计划竞赛斩获银奖
在3月19日结束的第十三届“挑战杯”中国大学生创业计划竞赛上,重庆电子工程职业学院建筑与材料学院高深膜测-超滤膜智能在线检测系统的攻坚者
-
盗墓笔记7邛笼石影小说_盗墓笔记7邛笼石影_世界时快讯
1、后面的作者还在写,南派三叔写文最先在他的新浪博客更新,可以关注那个以下摘自南派三叔在盗墓笔记贴吧的访谈:吧友:
-
自动驾驶提及率远低于ChatGPT 英伟达与车圈的故事如何延续?|当前看点
今年,NVIDIAGTC大会对自动驾驶的热情有些许下降,但车企在智能化进程中与NVIDIA的合作正稳步推进。
-
世界消息!安徽合肥走进福州推介旅游资源
3月22日,由安徽省合肥市文化和旅游局主办的2023合肥文化旅游推介会在福建省福州市举办。会上,合肥市文化和旅游局党组成员、副局长丁海鹰介绍
-
“网红”电解质消毒液真有杀菌功效吗|全球新消息
电解质消毒液的有效成分是次氯酸钠,它是由食盐水经电解后产生的。次氯酸钠是一种广谱消毒剂,也是84消毒液的主要成分,其可以“对付”几乎所
X 关闭
Java中restTemplate的使用
请问垂钓翁声望怎么开启
一批重点融资租赁项目签约 总金额近2500亿元
铜陵市义安区:深入实施“四苗工程” 拧紧年轻干部“选育管用”全链条
每日速递:聚辰股份:3月23日融券净卖出1.81万股,连续3日累计净卖出2.35万股
X 关闭
最新快讯!国家统计局:2021年全国旅游及相关产业增加值占GDP比重为3.96%
千秋街道强化监督执纪让低保更“阳光”_微资讯
环球焦点!12月29日,博安生物-B(06955.HK)配售结束