
原文链接GitHub项目地址Gitee项目地址本文介绍restTemplate基础用法
腾讯云 2023-03-25 17:07:51
(资料图片)
原文链接
GitHub项目地址
Gitee项目地址
本文介绍restTemplate基础用法。
Java中get和post的用法请参考:Java中Get和Post的使用
@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(); }}
@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; }}
使用restTemplate调用get/post接口。
getForObject()
:返回值是HTTP
协议的响应体getForEntity()
:返回的是ResponseEntity
,ResponseEntity
是对HTTP
响应的封装,除了包含响应体,还包含HTTP
状态码、contentType、contentLength、Header
等信息@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(); }}
@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; }}
原文链接GitHub项目地址Gitee项目地址本文介绍restTemplate基础用法
1、战国楚地疆域广阔,秦汉时分为西楚、东楚、南楚,合称三楚。2、《史记·货殖列传》以淮北、沛、陈、汝
王即海贼王,四皇分别是:白胡子爱德华纽盖特,红发香克斯,凯多,BIGMAM夏洛特玲玲。七武海分别是:乔拉可尔·密佛格,唐吉诃德·多弗朗明哥
众所周知,受到疫情和其他客观因素影响,国足此前已经长时间没能与世界强队进行过国际正式比赛,就连此前一直举行的中国杯也停办多年,随着今
1、香烛。香烛是是清明扫墓的时候必须准备的东西之一,不仅要在先人目前点燃香烛,还要奉香给看管墓地的山神土地,祈求山神土地守护好墓地,保
1、皇子(10人)1.爱新觉罗·弘晖,皇长子,幼殇。2、生母为孝敬宪皇后。3、康熙三十六年三月生;康熙四十三年殇,年八岁
融入更多的圈子;人人都有自己的兴趣爱好,因此多多少少都有自己的生活圈子,圈子里边大多都是兴趣相投的人,在这里面找对象再合适不过了,而
据证券之星公开数据整理,近期江南化工(002226)发布2022年年报。根据财报显示,本报告期中江南化工增收不增利,应收账款高企。截至本报告期
三湘都市报·新湖南客户端3月23日讯(通讯员徐保风刘红全媒体记者杨斯涵黄京)为了用好用活红色资源,赓续红色血脉
据天空体育报道,热刺正在密切关注纳格尔斯曼的动态。在热刺3-3战平南安普顿后,孔蒂的未来变得不确定,据说热刺的管理层正在考虑一些可能接替
3月23日,上海市投资促进服务中心会同闵行、虹口两区投资促进部门,在北京开展“双城合璧共创未来”2023上海·北京投资合作推介会。
第一步:弄一大锅水加热(50度即可,关火),把硬柿子放到水里面,导入食用碱。根据柿子的比例,适当来放食用碱一般要太多。一把即可。(如果
1、我与春风皆过客你携秋水揽星河这句话的意思是:我和春风在你的世界,只不过犹如过客一样,甚至留不下一点影子,而你携带着熠熠生辉的星河,
2023年国剧最高分!剧版《三体》豆瓣涨至8 7分:超36万人评价
图1:ATCC中BEAS-2B的细胞形态Beas-2B细胞从一位非癌个体的正常人支气管上皮病理切片分离,经过腺病毒12-SV40杂交病毒感染并筛选克隆建成永生