(资料图)
原文链接
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基础用法
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化...
1、要用visio,微软的软件要用visio,微软就兼容这么一款流程编辑软...
1 人生短,岁月长。念亲情,最难忘。乳汁甜,饭菜香。冷与暖,放心...
春光无限好,外贸扬帆起。河南创新服务举措,优化跨境贸易便利度,...
1、汽车三元催化器是安装在汽车排气系统中最重要的机外净化装置,它...
每天快节奏的上班通勤,大家都会选择汽车、公交、地铁等交通方式来...
编辑:人力君微信的规则进行了调整看完文章可以点击上方蓝字“人力...
3月23日,中捷资源收到证监会浙江监管局送达的《行政处罚决定书》。...
建行惠懂你是建设银行旗下的一个金融放贷服务功能,主要是给个小微...
《春思》【唐】李白燕草如碧丝,秦桑低绿枝。当君怀归日,是妾断肠...
市民不慎遗失手提包,武汉东站保安队员捡到归还受表扬
直播吧3月24日讯FIFA公布最新一期女足世界排名,中国女足上升一位至...
1、“上”,现代汉语规范一级字,普通话读音为shàng、shǎng,最早...
品种 规格报价市场 地区报价均价涨跌单位1 钴广东南储现货313000...
1、财神到,祝福到金银满筐财不少。2、望你,财气东来好运多,金银...
中国民航大学毕业方向主要是各大航空公司和机场,很多人想知道中国...
齐鲁网·闪电新闻3月24日讯3月24日,泰山景区管委会发布关于择期进...
1、你直接进入东北石油大学的主页。2、然后有链接。本文就为大家分...
前几天医院接到了一个急救电话,一名女子在电话里呼救:“快救救我...
3月19日,在马拉维奇夸瓦,一名女子领取救济物资。马拉维灾害事务管...
自来水龙头最早出现于16世纪,并没有具体发明人,在16世纪伊始自来...
如上图,Prometheus核心功能包括服务发现、数据采集和数据存储。服...
1、《拉丁美洲思想史述略》是2003年3月1日云南人民出版社出版的一本...
1、《恶毒女配身后的极品男人》作者:若明翼每一个恶毒女配身后一定...
1、可以换个分区解决办法如下:首先设置Windows系统虚拟内存,建议...
隐形战机究竟隐在哪?火爆全网的ChatGPT真的无所不能吗?成都大运会...
1、剧情介绍:房地产商华朗集团董事长的千金夏晚晴(杨幂饰),在遭...
接连暴雷下,美国发现不对劲,反倒帮了中国,世界开始拥抱人民币,暴...
一诺威(834261)北交所IPO发行结果出炉,5 65万户投资者打新,有...