【资料图】
原文链接
GitHub项目地址
Gitee项目地址
本文介绍restTemplate基础用法。
Java中get和post的用法请参考:
https://mp.weixin.qq.com/s/mC0D1nuCqIori5bWtLorWQ
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 strObject = restTemplate.getForObject(getURL, String.class); JSONObject jsonObject = JSONObject.parseObject(strObject); // 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 jsonObject:" + jsonObject + "\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的使用
https: mp weixin qq com s mC0D1nuCqIori5bWtLorWQ
-
探访新工体:体验感大升级,这里不输世界杯球场!|今日热讯
时隔3年,记者再次走进崭新的工体。虽然这里已经“变身”为现代化的专业足球场,但还是会给人一种熟悉的味道,就像见到一位别来无恙的老朋友。
-
赞美抗击疫情的医护人员的句子
1、春节在岗,疫情坚守,最美的人!你和战斗在疫情一线的医护工作者及一切为抗击疫情默默工作的人员,都是这座城市最美的风景!值得我们为你们
-
上海石化:2022年度净亏损28.72亿元 同比转亏
上海石化(600688)公布年报,2022年实现营业收入825 18亿元,同比下降7 57%;归母净利润为亏损28 72
-
环球时讯:怀柔:全力做好空气重污染天气服务保障
受冷空气大风影响,今明两天我国北方大部地区将出现沙尘天气。怀柔区环卫公司严格落实道路清扫保洁作业规范,启动精细化管理作业模式,做好此
-
当年的美国梦一队有多无解,他们是否是美国队历史最强阵容?
如下解答:我的观点当然是。美国梦一队是美国的国家男篮名称,球队成名于1992年巴塞罗那奥运会。这支美国男篮首次囊括了当时NBA各位置上的顶尖
-
“三亚租车被坑”事件6人被刑拘 涉嫌敲诈勒索罪|天天热消息
3月22日,在三亚召开的旅游市场综合整治新闻发布会上,市公安局天涯分局副局长黄泽针对近期自媒体发布“三亚租车被坑”视频事
-
美腾科技(688420)3月22日主力资金净卖出198.99万元 环球动态
截至2023年3月22日收盘,美腾科技(688420)报收于44 55元,下跌1 02%,换手率5 35%,成交量1 09万手,成交额4846 34万元。
-
国轩高科全球布局储能及锂电回收业务
3月20日,国轩高科发布消息称,公司已与日本爱迪生能源达成战略合作协议,双方将携手开拓日本储能和回收市场,推进国轩电池走进日本市场。除了
-
华润万象生活喻霖康:中国高端消费会留在国内-天天简讯
乐居财经吴文婷3月21日至23日,以“商业新变局,一起向未来”为主题的中国商业地产行业发展论坛(第十八届)2023年会在深圳蛇口举行。直播》》华
-
环球今日报丨踏青看过来!陕西21条春季乡村游精品线路发布
踏青看过来!陕西21条春季乡村游精品线路发布
-
孙颖莎太累了!一张照片让球迷泪目,莎莎大满贯三冠背后付出太多
国乒在圆满完成新加坡大满贯任务之后,带着五座冠军奖杯凯旋回国。孙颖莎以三项比赛全部夺冠居功至伟,成为国乒最闪耀的主力金花。莎莎在训练
-
迷你世界皮肤大全图片 人物 情侣_迷你世界皮肤大全图片|全球动态
1、迷你世界的皮肤分为男女两类。2、分别为:迷你世界女皮肤:梦歌、花小楼、米娜、小艾、雪球球、安吉洛斯、月无双、柳仙儿、
-
甘肃一对表兄弟赴缅失联49天 弟弟曾告诉家属:“别乱发消息,被监控着”|天天快报
甘肃一对表兄弟赴缅失联49天弟弟曾告诉家属:“别乱发消息,被监控着”,失联,甘肃,缅甸,柳州
-
环球观点:优质服务做“加法”,吉林长春政法机关为社会经济发展按下“加速键”
优质服务做“加法”,吉林长春政法机关为社会经济发展按下“加速键”
-
焦作万方股东户数增加122户,户均持股7.43万元
焦作万方最新股东户数8 71万户,高于行业平均水平。公司户均持有流通股份1 37万股;户均流通市值7 43万元。
-
安全教育平台作业登录_安全平台作业 环球聚焦
1、安全作业分成学前段(幼儿园)、低段(小学1到3年级)、中段(小学4到6年级)、高段(初中、高中)。2、每学段网上安全
-
世界新消息丨中原建业:2022年净利润3.035亿元,同比减少60.6%
中原建业:2022年净利润3 035亿元,同比减少60 6%,代建,房地产,中原建业
-
河南银保监局:防范炒作“元宇宙”“虚拟货币”等社会热点骗取社会公众财产的非法集资
河南银保监局网站9月22日消息,河南银保监局发布关于防范非法集资的风险提示。近期,不法分子利用高息“理财”或炒作“元宇宙
-
旺起来 快起来 忙起来!空·天·陆视角透视经济复苏
新华社天津3月20日电(记者梁姊、王井怀)今年以来,随着疫情防控较快平稳转段,稳经济政策效果持续显现,我国经济循环加快畅通,多项经济指标