当前速讯:Java中restTemplate的使用
原文链接GitHub项目地址Gitee项目地址本文介绍restTemplate基础用法
(相关资料图)
原文链接
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基础用法
地大、景好、花多、人少,这样的油菜花赏花地主城就有。▲摄影by重庆周末去哪1群假如青春可以按揭在沙坪坝中梁镇,有一处彩色油菜花田,它依山
牛津经济研究院首席美国经济学家豪登在一份报告中说,美国新房销售近期的增长势头不太可能在未来几个月继续。她说,由于建筑商推出了降价和其
1、现在眼前的一切,不过三十而已。2、我二十二岁的时候,也是天天想着买全套护肤品,越贵越好。但是到三十了我才发现,爱情才是女人最好的保
百亿级私募最新持仓曝光!高毅、景林、淡水泉重仓股浮出水面,私募,持仓,景林,淡水泉,重仓股,邓晓峰,高毅资产,基金产品
3月23日,胡润研究院发布《胡润全球富豪榜》显示,LVMH的伯纳德·阿诺特以1 35万亿元人民币的“财富”首次成为世界首富,马斯克与爱马仕的贝特
挖贝网3月23日,康拓医疗(688314)近日发布2022年年度报告,报告期内公司实现营业收入239,948,744 59元,同比增长12 89%;归属于上市公
3月23日,兆易创新今日涨停,成交额43 88亿元,换手率5 86%,盘后龙虎榜数据显示,沪股通专用席位买入4 15亿元并卖出1 76亿元,2家机构专用席
肋骨固定板(胸骨固定板、肋骨骨折固定器、心外科术后护板等)产品特点与病院采购须知肋骨固定板--这一产品,相信医疗行业的从业者都可能知道,
据海外网援引外媒报道,当地时间3月22日,美联储宣布加息25个基点。美国前劳工部长罗伯特·赖克当天警告,美联储此举是在“玩火”,再次加息的
1、中国博物馆学会于1983年正式加入国际博物馆协会,并成立了国际博物馆协会中国国家委员会。每年5月18日在全国各省市区举办形式多样的纪念活
上证报中国证券网讯新华网22日接受了中信建投、汇添富基金、友邦保险等50多家机构调研,就新华智云AIGC元宇宙系统“元卯”等进行交流。 新
3月22日,副市长周剑主持召开第163次服务企业周例会,专题研究1月、2月生产经营困难企业有关情况,逐一分析原因,明确帮扶措施。周剑要求,各
男子在酒店枕头下发现一窝老鼠这不得吓死了!!今天的关注度非常高,直接上了热搜榜,那么具体的是什么情况呢,大家可以一起来
现在已经是初夏的季节了,今天要来跟大家讲讲的是日本著名的婴儿用品品牌,贝亲的防晒霜。儿童防晒霜特别注重配方的安全,那么贝亲的儿童防晒
波黑【有利】1、进攻:波黑近期进攻端表现较为稳定,过去6场欧国联均能够取得进球;2、主场:球队拥有出色的主场战绩,近3个主场全部都能够斩
C罗和小小罗:克里斯蒂亚诺·罗纳尔多(CristianoRonaldo),1985年2月5日出生于葡萄牙马德拉岛丰沙尔,葡萄牙足球运动员,司职边锋 中锋,简称
3月22日北向资金增持190 12万股吉视传媒。近5个交易日中,获北向资金增持的有4天,累计净增持1378 42万股。近20个交易日中,获北向资金增持的
【手机中国新闻】不久之前,realme真我手机官方正式发布了realme真我GTNeo5这款产品。作为一款非旗舰机型,realme真我GTNeo5却带来了不少堪称
2023重庆两江新区新冠病毒疫苗接种点位和时间根据“乙类乙管”要求,结合当前新冠病毒疫苗接种情况,两江新区进一步优化了接种点位和时间。目