电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Springboot集成restTemplate過程詳解

瀏覽:71日期:2023-05-22 10:38:42

一restTemplate簡介

restTemplate底層是基于HttpURLConnection實現的restful風格的接口調用,類似于webservice,rpc遠程調用,但其工作模式更加輕量級,方便于rest請求之間的調用,完成數據之間的交互,在springCloud之中也有一席之地。大致調用過程如下圖

Springboot集成restTemplate過程詳解

二restTemplate常用方法列表

forObeject跟forEntity有什么區別呢?主要的區別是forEntity的功能更加強大一些,其返回值是一個ResponseEntity,更加方便我們獲得響應的body,head等信息。exchange方法和其他方法不同之處就是能自己定義的rest請求方式。

2.1 get請求方法預覽

Springboot集成restTemplate過程詳解

2.2 post方法請求預覽

Springboot集成restTemplate過程詳解

2.3put請求方法預覽

Springboot集成restTemplate過程詳解

2.4 delete請求方法預覽

Springboot集成restTemplate過程詳解

2.5exchange方法預覽

Springboot集成restTemplate過程詳解

三rest接口調用示例

restTemplate配置

首先本次示例采用的是springboot2.x以上版本,javaSE8;其次發布的服務端是同一臺機子,服務端端口8090,客戶端端口8080;類路徑youku1327;在實際工作中最常用是get,post請求方式;restTemplate簡單配置如下:

/** * @Author lsc * @Description <p> </p> * @Date 2019/10/14 11:40 * @Version 1.0 */@Configurationpublic class RestTemplateConfig { // 配置 RestTemplate @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory){ return new RestTemplate(factory); } @Bean public ClientHttpRequestFactory simpleClientHttpRequestFactory(){ // 創建一個 httpCilent 簡單工廠 SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); // 設置連接超時 factory.setConnectTimeout(15000); // 設置讀取超時 factory.setReadTimeout(5000); return factory; }}

3.1 get請求接口調用示例

服務費發布的端口

@GetMapping('user') public String getUser(){ return 'youku1327'; } @GetMapping('user/{name}') public String getUserName(@PathVariable String name){ return name; }

客戶端調用

GET參數說明:

第一個參數是url。 第二個參數是返回值類型。 第三個參數是uri地址路徑變量。

/* * @Author lsc * @Description <p> 獲得無參的get請求 </p> * @Date 2019/10/17 21:15 * @Param [] * @return void **/ @Test public void testGETNoParams(){ String result = restTemplate.getForObject('http://localhost:8090/youku1327/user', String.class); System.out.println(result); } /* * @Author lsc * @Description <p> URL帶參 </p> * @Date 2019/10/18 13:49 * @Param [] * @return void **/ @Test public void testGETParams(){ // http://localhost:8090/youku1327/user/{1} String result = restTemplate.getForObject('http://localhost:8090/youku1327/user/{name}', String.class,'lsc'); System.out.println(result); }

3.2 post請求示例

POST請求參數說明

第一個參數是url。第二個參數是請求參數。第三個參數是返回值類型。第三個參數是uri地址路徑變量。

服務端發布接口

@PostMapping('provider') public ResponseEntity<String> addData(@RequestBody JSONObject jsonObject){ String user = (String) jsonObject.get('user'); return ResponseEntity.ok(user); }

客戶端接口調用

/* * @Author lsc * @Description <p> post</p> * @Date 2019/10/18 23:23 * @Param [] * @return void **/ @Test public void testPostMethod() throws MalformedURLException { JSONObject jsonObject = new JSONObject(); jsonObject.put('user','youku1327'); HttpHeaders httpHeaders = new HttpHeaders(); // 設置請求類型 httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8); // 封裝參數和頭信息 HttpEntity<JSONObject> httpEntity = new HttpEntity(jsonObject,httpHeaders); String url = 'http://localhost:8090/youku1327/provider'; ResponseEntity<String> mapResponseEntity = restTemplate.postForEntity(url, httpEntity, String.class); System.out.println(mapResponseEntity.getBody()); }

3.3 put接口調用示例

PUT請求參數說明

第一個參數是url。第二個參數是請求參數。第三個參數是uri地址路徑變量。

服務端發布接口

@PutMapping('provider/{id}') public ResponseEntity<JSONObject> updateData(@PathVariable Long id, @RequestBody JSONObject jsonObject){ Object object = jsonObject.get('user'); jsonObject.put('id',id); // {'id':1327,'user':'youku1327'} System.out.println(jsonObject); return ResponseEntity.ok(jsonObject); }

客戶端接口調用

/* * @Author lsc * @Description <p> put</p> * @Date 2019/10/18 23:23 * @Param * @return **/ @Test public void testPutMethod() throws MalformedURLException { JSONObject jsonObject = new JSONObject(); jsonObject.put('user','youku1327'); HttpHeaders httpHeaders = new HttpHeaders(); // 設置請求類型 httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8); // 封裝參數和頭信息 HttpEntity<JSONObject> httpEntity = new HttpEntity(jsonObject,httpHeaders); String url = 'http://localhost:8090/youku1327/provider/{id}'; restTemplate.put(url, httpEntity, 1327); }

3.4delete請求示例

DELETE請求參數說明

第一個參數是url第二個參數uri地址路徑變量。

服務端發布接口

@DeleteMapping('provider/{id}') public ResponseEntity<String> delData(@PathVariable Long id){ String result = 'delete'+id+'success'; // delete1327success System.out.println(result); return ResponseEntity.ok(result); }

客戶端調用接口

/* * @Author lsc * @Description <p> delete</p> * @Date 2019/10/18 23:22 * @Param [] * @return void **/ @Test public void testDelete(){ String url = 'http://localhost:8090/youku1327/provider/{id}'; restTemplate.delete(url,1327); }

3.5 exchange

參數說明:

第一個參數是url。第二個參數是請求方式。第三個參數是請求實體。第四個參數是返回值類型。第五個參數是uri地址變量。

服務端發布接口

@GetMapping('user/{name}') public String getUserName(@PathVariable String name){ return name; }

客戶端調用接口

/* * @Author lsc * @Description <p> exchange</p> * @Date 2019/10/18 23:22 * @Param [] * @return void **/ @Test public void testExchange(){ String url = 'http://localhost:8090/youku1327/user/{name}'; HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED); HttpEntity httpEntity = new HttpEntity(httpHeaders); ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class, 'youku1327'); System.out.println(exchange.getBody()); }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 医院专用门厂家报价-医用病房门尺寸大全-抗菌木门品牌推荐 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 翰墨AI智能写作助手官网_人工智能问答在线AI写作免费一键生成 | 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | bng防爆挠性连接管-定做金属防爆挠性管-依客思防爆科技 | 炉门刀边腹板,焦化设备配件,焦化焦炉设备_沧州瑞创机械制造有限公司 | 展厅装修公司|企业展厅设计|展厅制作|展厅搭建—广州展厅装饰公司 | 苏州教学设备-化工教学设备-环境工程教学模型|同科教仪 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 无刷电机_直流无刷电机_行星减速机-佛山市藤尺机电设备有限公司 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 东莞海恒试验仪器设备有限公司| 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | LINK FASHION 童装·青少年装展 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 河南中专学校|职高|技校招生-河南中职中专网 | 传爱自考网_传爱自学考试网 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 吸音板,隔音板,吸音材料,吸音板价格,声学材料 - 佛山诺声吸音板厂家 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 防锈油-助焊剂-光学玻璃清洗剂-贝塔防锈油生产厂家 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 玻璃钢罐_玻璃钢储罐_盐酸罐厂家-河北华盛节能设备有限公司 |