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基础用法
日前,腾势汽车发布消息称,将在3月22日举办的“腾势X帝瓦雷合作发布之夜”上正式公布品牌第三款车型——腾势N8。
汽车现在已经越来越普及,基本上都快实现每家每户都有汽车了,那么汽车这么多的情况之下,我们在用车的过程当中肯定也就会遇到各
爱他美。德国领先的高端奶粉品牌,是德国市场份额第一的奶粉,也是欧洲销量最好的奶粉之一。爱他美奶粉产自德国,是德国美乐宝(Milupa)集团
其实,从2009年交手之后,阿根廷面对巴拿马未尝一败,甚至一度在美洲杯踢出5-0的悬殊战绩,所以此一役球迷仍旧相信梅西带队可以再次取胜。直到
03月24日,万向钱潮被深股通减持122 87万股,最新持股量为3346 61万股,占公司A股总股本的1 01%。
《卧龙苍天陨落》高效刷弩赐福介绍这个问题呢,是卧龙苍天陨落中大家都会遇到的一个小问题,那么这个问题解决的非常简单,这个问题共有好几个
江宁高新区生物医药产业高质量发展促进会现场。江宁高新区供图3月23日下午,南京江宁高新区召开生物医药产业高质量发展促进会
1、可以使用84或者酒精,按照一定比例配比倒在喷壶中,对卫生间进行喷洒。或者直接在清水中加入消毒液,对卫生间进行擦拭。重点部位有卫生间的
同花顺金融研究中心3月24日讯,有投资者向涛涛车业提问,请问公司场地电动车产品是否将应用于杭州亚运会? 公司回答表示,您好!公司场地电
1、《晚秋》是诗人李琪创作的一首诗歌。文章到此就分享结束,希望对大家有所帮助。
《晚霞映初心》摄影展,日前在上海市老年教育学习成果展示中心开幕。此次活动在上海市老年教育工作小组办公室指导下,在上海老年大学、上海市
背后现信息贩卖“黑产” 除了怂恿套用企业征信机构信息外,也有服务商为贷款中介群发“106”短信提供手机号,贩卖个人信息。在北京商报记者
日前,中国公安部与俄罗斯执法部门经过密切协作,成功将杀害我1名公安民警并逃俄27年之久的犯罪嫌疑人许某从俄罗斯引渡回国。
重磅发布!事关6G!
晚清是1840年到1911年,是指清朝的晚期,是中国近代史的开端,也是近代中国半殖民地半封建社会的形成时期。公元1840年,林则徐在虎门销烟以后
1、2021年成人高考报名时间暂未公布,预计将于2021年8月、9月进行。2、考试时间预计为10月下旬,具体公告以各地教育考试院或者招生考试网公布
大马丁谈赛前落泪:无法忍住泪水,想起自己为这一天所做的付出,忍住,杀手,大马丁
Quartz一款功能丰富、历史悠久,完全基于Java实现的开源任务调度框架,Java调度领域知名度非常高。其简单易用、稳定可靠的特性,使其被很多第
阿斯:卜拉欣-迪亚斯和弗兰-加西亚将是皇马今夏首批“引援”。据阿斯报的报道,米兰攻击手卜拉欣-迪亚斯和巴列卡诺的边卫弗兰-加西亚(此前已
随着时代的变迁,随着城市的改建,一棵棵苍天大树逐渐演变为一幢幢高楼大厦,住上高档次的新房子已经不是什么稀奇事,在科技日新
打开手机中的支付宝APP,并登录自己的账号;在“支付宝”首页点击右下角“我的”按钮,将界面切换到“我的”界面;找到并点击“余额宝”;在“
3月23日北向资金增持138 12万股驰宏锌锗。近5个交易日中,获北向资金增持的有4天,累计净增持612 69万股。近20个交易日中,获北向资金增持的有
1、你好!12371与全党员管理信息系统不是同一个,12371是党员手机短信平台是传播党的声音的重要窗口,通达社情民意的崭新渠道;全国党员管理信
美股开盘:三大股指集体高开兴登堡研究发布Block做空报告:美股三大股指集体高开,道指高开90点,纳指高开1 2%,标普500指数涨0 71%;Block下跌超
Copyright 2015-2022 华东酒业网 版权所有 备案号:京ICP备2022016840号-41 联系邮箱:2 913 236 @qq.com