日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

springboot集成restTemplate实现rest接口调用

發(fā)布時(shí)間:2025/3/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot集成restTemplate实现rest接口调用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

?

一restTemplate簡(jiǎn)介

二restTemplate常用方法列表

2.1 get請(qǐng)求方法預(yù)覽

2.2 post方法請(qǐng)求預(yù)覽

2.3put請(qǐng)求方法預(yù)覽

2.4 delete請(qǐng)求方法預(yù)覽

2.5exchange方法預(yù)覽

三rest接口調(diào)用示例

3.1 get請(qǐng)求接口調(diào)用示例

3.2 post請(qǐng)求示例

3.3 put接口調(diào)用示例

3.4delete請(qǐng)求示例

3.5 exchange

?


一restTemplate簡(jiǎn)介

restTemplate底層是基于HttpURLConnection實(shí)現(xiàn)的restful風(fēng)格的接口調(diào)用,類似于webservice,rpc遠(yuǎn)程調(diào)用,但其工作模式更加輕量級(jí),方便于rest請(qǐng)求之間的調(diào)用,完成數(shù)據(jù)之間的交互,在springCloud之中也有一席之地。大致調(diào)用過(guò)程如下圖,如果想學(xué)習(xí)其底層具體如何實(shí)現(xiàn)可以查看我的文章?restTemplate源碼詳解深入剖析底層實(shí)現(xiàn)思路。

二restTemplate常用方法列表

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

2.1 get請(qǐng)求方法預(yù)覽

2.2 post方法請(qǐng)求預(yù)覽

2.3put請(qǐng)求方法預(yù)覽

2.4 delete請(qǐng)求方法預(yù)覽

2.5exchange方法預(yù)覽

三rest接口調(diào)用示例

restTemplate配置
首先本次示例采用的是springboot2.x以上版本,javaSE8;其次發(fā)布的服務(wù)端是同一臺(tái)機(jī)子,服務(wù)端端口8090,客戶端端口8080;類路徑y(tǒng)ouku1327;在實(shí)際工作中最常用是get,post請(qǐng)求方式;restTemplate簡(jiǎn)單配置如下:

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

3.1 get請(qǐng)求接口調(diào)用示例

服務(wù)費(fèi)發(fā)布的端口

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

客戶端調(diào)用
GET參數(shù)說(shuō)明:

  • 第一個(gè)參數(shù)是url。
  • 第二個(gè)參數(shù)是返回值類型。
  • 第三個(gè)參數(shù)是uri地址路徑變量。
/** @Author lsc* @Description <p> 獲得無(wú)參的get請(qǐng)求 </p>* @Date 2019/10/17 21:15* @Param []* @return void**/@Testpublic 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**/@Testpublic 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請(qǐng)求示例

POST請(qǐng)求參數(shù)說(shuō)明

  • 第一個(gè)參數(shù)是url。
  • 第二個(gè)參數(shù)是請(qǐng)求參數(shù)。
  • 第三個(gè)參數(shù)是返回值類型。
  • 第三個(gè)參數(shù)是uri地址路徑變量。

服務(wù)端發(fā)布接口

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

客戶端接口調(diào)用

/** @Author lsc* @Description <p> post</p>* @Date 2019/10/18 23:23* @Param []* @return void**/@Testpublic void testPostMethod() throws MalformedURLException {JSONObject jsonObject = new JSONObject();jsonObject.put("user","youku1327");HttpHeaders httpHeaders = new HttpHeaders();// 設(shè)置請(qǐng)求類型httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);// 封裝參數(shù)和頭信息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接口調(diào)用示例

PUT請(qǐng)求參數(shù)說(shuō)明

  • 第一個(gè)參數(shù)是url。
  • 第二個(gè)參數(shù)是請(qǐng)求參數(shù)。
  • 第三個(gè)參數(shù)是uri地址路徑變量。

服務(wù)端發(fā)布接口

@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);}

客戶端接口調(diào)用

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

3.4delete請(qǐng)求示例

DELETE請(qǐng)求參數(shù)說(shuō)明

  • 第一個(gè)參數(shù)是url
  • 第二個(gè)參數(shù)uri地址路徑變量。

服務(wù)端發(fā)布接口

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

客戶端調(diào)用接口

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

3.5 exchange

參數(shù)說(shuō)明:

  • 第一個(gè)參數(shù)是url。
  • 第二個(gè)參數(shù)是請(qǐng)求方式。
  • 第三個(gè)參數(shù)是請(qǐng)求實(shí)體。
  • 第四個(gè)參數(shù)是返回值類型。
  • 第五個(gè)參數(shù)是uri地址變量。

服務(wù)端發(fā)布接口

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

客戶端調(diào)用接口

/** @Author lsc* @Description <p> exchange</p>* @Date 2019/10/18 23:22* @Param []* @return void**/@Testpublic 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());}

?

總結(jié)

以上是生活随笔為你收集整理的springboot集成restTemplate实现rest接口调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美成一区二区三区 | 亚洲欧洲在线看 | 精品伦精品一区二区三区视频密桃 | 中文字幕三级电影 | 精品五月天 | 国产专区视频 | 护士人妻hd中文字幕 | 亚洲美女视频在线 | 黄网页在线观看 | 性饥渴的农村熟妇 | 无人码人妻一区二区三区免费 | 国产成人精品视频ⅴa片软件竹菊 | 使劲插视频 | 亚洲第一色站 | 色小姐av | 亚洲清纯唯美 | 精品成人在线 | 69亚洲精品久久久蜜桃小说 | 中日黄色片 | 美女视频黄频视频大全 | 欧美激情精品久久久久久变态 | 国产一区二区网址 | 欧美精品久久久久久久久久 | 国产精品电影一区二区三区 | 日本中文字幕不卡 | 欧美日韩999 | 伊人网在线观看 | 久久久久99精品成人片试看 | 伊人222成人综合网 亚洲日本中文 | 男受被做哭激烈娇喘gv视频 | 国产成人精品电影 | 成人91av | 免费黄色高清视频 | 夜夜艹天天干 | 激情六月天 | 免费中文字幕视频 | 国产黄在线| 五月婷婷小说 | 久久特黄视频 | 亚洲综合色在线 | 日本老肥婆bbbwbbbwzr | 亚洲欧美成人 | 国产福利免费视频 | 国产a免费视频 | 国产让女高潮的av毛片 | 性欧美xxxx | 久草天堂 | 秋霞99 | 中国黄色片视频 | 宅男的天堂 | 钰慧的mv视频在线观看 | 成人网一区 | 日韩天堂网 | 啪啪天堂 | 天天狠狠 | www.四虎精品 | 找av导航| 国产精品久久久久野外 | 亚洲v日韩v综合v精品v | 在线免费观看网站入口在哪 | 在线你懂的视频 | 久久精品店| 色综合色综合网色综合 | 国产三级久久久久 | 手机看片日韩在线 | 日本美女全裸 | 国产黄色录像 | 少妇一级片 | 欧美日韩在线视频免费 | 蜜桃臀av| 97热视频| 久久天天操 | 999精品免费视频 | 999国产精品视频 | 日韩精品视频免费看 | 九九九九九精品 | mm视频在线观看 | 色呦呦在线免费观看 | 看特级毛片 | 精品无码人妻一区二区三区品 | 亚洲a级在线观看 | 亚洲天堂成人在线观看 | 超碰在线人 | 欧美老熟妇一区二区三区 | 红桃视频在线播放 | 特级西西444www高清大视频 | 欧美一二三视频 | 亚洲综合涩 | 在线观看成人动漫 | 五月情网 | 福利视频在线看 | 色噜噜视频 | 丁香花电影在线观看免费高清 | 久久精品亚洲一区二区 | 国产精品99精品久久免费 | 99九九热| 波多野结衣视频网站 | 亚洲av成人一区二区国产精品 | 色黄大色黄女片免费中国 |