RestClient使用
前言
RestClient是Spring6.1使用的http客户端,旨在用来代替RestTemplate发送http,以阻塞方式发送和接收 HTTP 请求和响应,随着Springboot3.2.0的发布,RestClient才可以被使用
RestClient使用
get请求发送
定义一个Get请求的test接口
@GetMapping("/test")
public String test() {
log.info("info日志");
return "hello";
}
使用RestClient客户端发送get请求,具体如下
@RequestMapping("/hello")
public String hello() {
RestClient restClient = RestClient.create();
String result = restClient.get().uri("http://localhost:7028/test").retrieve().body(String.class);
log.info("返回结果为:{{}}", result);
return "success";
}
post请求
定义一个post和json格式的请求
@PostMapping("/save")
public String save(@RequestBody User user) {
log.info("数据为:{{}}", user);
return "hello";
}
使用RestClient客户端发送post请求,具体如下
@RequestMapping("/testSave")
public String testSave() throws JsonProcessingException {
JsonMapper jsonMapper = JsonMapper.builder()
.configure(JsonReadFeature.ALLOW_SINGLE_QUOTES, true)
.build();
RestClient restClient = RestClient.create();
User user = new User();
user.setId(1L);
user.setName("aaa");
String json = jsonMapper.writeValueAsString(user);
String result = restClient.post()
.uri("http://localhost:7028/save")
.contentType(APPLICATION_JSON)
.body(json).retrieve().body(String.class);
log.info("返回结果为:{{}}", result);
return "success";
}
delete请求
定义一个delete接口
@DeleteMapping("/deleteById/{id}")
public String deleteById(@PathVariable("id") Long id) {
log.info("删除id为:{{}}", id);
return "success";
}
使用RestClient客户端发送delete请求,具体如下
@RequestMapping("/testDeleteById")
public String testDeleteById() {
RestClient restClient = RestClient.create();
String result = restClient.delete().uri("http://localhost:7028/deleteById/{id}", 1)
.retrieve().body(String.class);
log.info("返回结果为:{{}}", result);
return "success";
}
put请求
定义一个put请求
@PutMapping("/update")
public String update(@RequestBody User user) {
log.info("数据为:{{}}", user);
return "hello";
}
使用RestClient客户端发送put请求,具体如下
@RequestMapping("/testUpdate")
public String testUpdate() throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
RestClient restClient = RestClient.create();
User user = new User();
user.setId(1L);
user.setName("aaa");
String json = objectMapper.writeValueAsString(user);
String result = restClient.put()
.uri("http://localhost:7028/update")
.contentType(APPLICATION_JSON)
.body(json).retrieve().body(String.class);
log.info("返回结果为:{{}}", result);
return "success";
}
总结
RestClient是spring6.1版本以上才有的,但是好用的http工具类很多,可以根据自己习惯做技术选型,提高自己的开发效率
转载自:https://juejin.cn/post/7304867278567145524