Springboot如何详细实现restTemplate集成步骤?
- 内容介绍
- 文章标签
- 相关推荐
本文共计803个文字,预计阅读时间需要4分钟。
一、RestTemplate简介
RestTemplate是基于HttpURLConnection实现的restful风格的接口调用工具,类似于webservice和rpc远程调用。其工作模式更轻量级,便于rest请求之间的调用,实现数据之间的交互。
二、RestTemplate底层实现
RestTemplate底层是基于HttpURLConnection实现的,它封装了底层的HTTP请求发送和响应处理逻辑,简化了开发过程。
三、RestTemplate优点
1. 工作模式轻量级,便于rest请求之间的调用;
2.简化了HTTP请求发送和响应处理逻辑,降低开发难度;
3.支持多种数据格式,如JSON、XML等;
4.支持多种请求方式,如GET、POST、PUT、DELETE等。
一restTemplate简介
restTemplate底层是基于HttpURLConnection实现的restful风格的接口调用,类似于webservice,rpc远程调用,但其工作模式更加轻量级,方便于rest请求之间的调用,完成数据之间的交互,在springCloud之中也有一席之地。大致调用过程如下图
二restTemplate常用方法列表
forObeject跟forEntity有什么区别呢?主要的区别是forEntity的功能更加强大一些,其返回值是一个ResponseEntity
2.1 get请求方法预览
2.2 post方法请求预览
2.3put请求方法预览
2.4 delete请求方法预览
2.5exchange方法预览
三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 */ @Configuration public class RestTemplateConfig { // 配置 RestTemplate @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory){ return new RestTemplate(factory); } @Bean public ClientHttpRequestFactory simpleClientHttpRequestFactory(){ // 创建一个 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(){ // localhost:8090/youku1327/user/{1} String result = restTemplate.getForObject("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 localhost:8090/youku1327/provider"; ResponseEntity<String> mapResponseEntity = restTemplate.postForEntity(url, localhost:8090/youku1327/provider/{id}"; restTemplate.put(url, 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 = "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()); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计803个文字,预计阅读时间需要4分钟。
一、RestTemplate简介
RestTemplate是基于HttpURLConnection实现的restful风格的接口调用工具,类似于webservice和rpc远程调用。其工作模式更轻量级,便于rest请求之间的调用,实现数据之间的交互。
二、RestTemplate底层实现
RestTemplate底层是基于HttpURLConnection实现的,它封装了底层的HTTP请求发送和响应处理逻辑,简化了开发过程。
三、RestTemplate优点
1. 工作模式轻量级,便于rest请求之间的调用;
2.简化了HTTP请求发送和响应处理逻辑,降低开发难度;
3.支持多种数据格式,如JSON、XML等;
4.支持多种请求方式,如GET、POST、PUT、DELETE等。
一restTemplate简介
restTemplate底层是基于HttpURLConnection实现的restful风格的接口调用,类似于webservice,rpc远程调用,但其工作模式更加轻量级,方便于rest请求之间的调用,完成数据之间的交互,在springCloud之中也有一席之地。大致调用过程如下图
二restTemplate常用方法列表
forObeject跟forEntity有什么区别呢?主要的区别是forEntity的功能更加强大一些,其返回值是一个ResponseEntity
2.1 get请求方法预览
2.2 post方法请求预览
2.3put请求方法预览
2.4 delete请求方法预览
2.5exchange方法预览
三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 */ @Configuration public class RestTemplateConfig { // 配置 RestTemplate @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory){ return new RestTemplate(factory); } @Bean public ClientHttpRequestFactory simpleClientHttpRequestFactory(){ // 创建一个 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(){ // localhost:8090/youku1327/user/{1} String result = restTemplate.getForObject("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 localhost:8090/youku1327/provider"; ResponseEntity<String> mapResponseEntity = restTemplate.postForEntity(url, localhost:8090/youku1327/provider/{id}"; restTemplate.put(url, 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 = "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()); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

