介绍

:::tips RestTemplate是Spring家族中一款基于Http协议的组件,用来实现基于Http协议的服务之间的通信(也就是服务调用)
RestTemplate采用同步方式执行Http请求的类,底层使用JDK原生HttpURLConnection API,或者HttpComponents等其他HTTP客户端请求类库

简单理解:RestTemplate是Spring提供的一个用来模拟浏览器发送请求和接收响应的类,能够远程调用API :::

使用

注册RestTemplate

:::info 将RestTemplate注册到Spring容器中 :::

  1. @Configuration
  2. public class WebConfig{
  3. //注册RestTemplate
  4. @Bean
  5. public RestTemplate restTemplate(){
  6. return new RestTemplate();
  7. }
  8. }

注入RestTemplate

在需要使用的类中注入RestTemplate,在需要调用接口的地方调用restTemplate的方法(此处调用的方法取决于请求方式:如get、put、post、delete等),指定参数一为请求地址,指定参数二为类名.class,调用restTemplate的方法发起请求后得到的响应数据就会封装到这个类的对象中,将返回值接收一下,就得到了指定类型的对象

  1. //注入RestTemplate
  2. @Autowired
  3. private RestTemplate restTemplate;

Get请求

:::tips 普通Get请求 :::

  1. @SpringBootTest
  2. public class MyTest{
  3. //注入RestTemplate
  4. @Autowired
  5. private RestTemplate restTemplate;
  6. @Test
  7. public void test(){
  8. //发起Get请求
  9. 类名 对象名 = restTemplate.getForObject("请求地址",类名.class);
  10. }
  11. }

:::tips Get请求携带Json数据 :::

  1. @SpringBootTest
  2. public class MyTest{
  3. //注入RestTemplate
  4. @Autowired
  5. private RestTemplate restTemplate;
  6. @Test
  7. public void test(){
  8. Map<String, Object> map = new HashMap<>();
  9. map.put("name", "zhangsan");
  10. map.put("id", 18);
  11. //发起Get请求并携带Json数据
  12. 类名 对象名 = restTemplate.getForObject("请求地址", 类名.class, map);
  13. }
  14. }