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月20日印发《南京市2023年经济社会发展重大项目名单》,要求各区人民政府,江北新区管委会,市府各委办局,市各直属单位
招聘流程(一)人才引进。按照集团公司有关规定执行(二)公开招聘程序。发布招聘公告→报名→资格审查→简历筛选→在线笔试→现场面试→档案审查(
来源:同花顺iFinD 盘面上,行业板块中,医药商业、医疗器械、医疗服务、食品加工制造等板块领涨,非金属材料、油气开采服务、煤炭开采加工
恒宝手表,或称为腕表,是指戴在手腕上,用以计时 显示时间的仪器。手表通常是利用皮革、橡胶、尼龙布、不锈钢等材料,制成表带,将显示时间的
3月23日,叶诗文在比赛中。当日,2023年全国春季游泳锦标赛女子200米蛙泳决赛在山东青岛举行,浙江选手叶诗文以2分2
据中国驻刚果(金)大使馆微信公众号消息,当前,一些非洲国家安全风险高企。(二)3月17日,刚政府军与M23武装分子在北基伍省戈马市西北马西西地
场下的穆勒乐观开朗,精通厨艺,经常在个人主页中分享自己做菜的视频。当地时间周四晚,穆勒在个人主页中分享了自己做菠菜的照片,穆勒默默秀
将打造为“三旧”改造示范点!普宁这一地块5月起进行围护,围护,三旧,示范点,规划区,普宁市,专项规划
1、百度(Baidu)、谷歌(Google)就是典型的全文搜索引擎。2、它们都是通过从互联网上提取的各个网站的信息(以
“三抓三促”行动进行时|甘肃崇信县政协助力困难群众就业真心助你“最后一米”
爱国主义的含义:爱国主义是人们对自己祖国的深厚感情,是对自己祖国的一份责任,是将个人的命运和祖国的命运紧密地联系在一起,调整个人与国
用户体验数字人民币视觉中国资料图今年以来,全国多地积极探索数字人民币应用场景,深入衣、食、住、行等日常生活领域,并积极探索养老、科创
“内卷”的文旅局长被批套路化同质化,已有省份要求错位宣传
景点及旅游板块异动拉升,三特索道(002159)涨停,峨眉山A涨超5%,大连圣亚(600593)、曲江文旅(600706
尚未纳入医保政策。种植牙目前不在基本医保支付范围内,根据规定,各省(区、市)对眼镜、义齿、义眼等器具均不纳入基本医保支付范围。自2022
武汉白癜风医院哪家好1、更准确地了解疾病首先,检查肯定是为了诊断病情。如果不检查,很难对病情有清晰的把握。因此,检查德的一大作用就是判
1、网上注册及填报时间:2020年1月9日8:00—12日17:30;2、网上资格审核时间:2020年1月9日8:00—13日17:30(节假日除外);3、网上
本报记者李乔宇3月22日,由阿根廷驻华大使馆和中青旅联合举办,聚焦当下热门旅行主题“极地邮轮游”和“低碳旅行”的推介活动在阿根廷驻华大使
风华30载,中化耀未来,2023年是苏州中化药品工业有限公司成立30周年的品牌年,同时也是苏州中化3 1类新药利波非进军OTC渠道的品牌元年,在
[ 相关新闻 ]
Copyright 2015-2022 热讯医院网 版权所有 备案号:豫ICP备20005723号-6 联系邮箱:29 59 11 57 8@qq.com