Spring 之 RestTemplate VS WebClient 发送 HTTP请求

WebClient 依赖

  <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-webflux</artifactId>
  </dependency>
WebClient 方法注解
block()阻塞式获取响应结果
subscribe()非阻塞式获取响应结果
exchange()获取HTTP响应完整内容:HTTP报文中的状态码、headers等信息
retrieve()只能获取HTTP报文中的Body

WebClient Post请求发送JSON字符串、对象、表单数据

RestTemplate Post请求发送JSON字符串、对象、表单数据

	@Test
    void contextLoads3() {
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
        //设置请求头
        HttpHeaders headers = new HttpHeaders();
        //设置参数
        LinkedMultiValueMap<String, Object> body = new LinkedMultiValueMap();

        body.add("tel", "15333065057");
        HttpEntity<LinkedMultiValueMap<String, Object>> entity = new HttpEntity(body, headers);
        //请求接口,并接收返回的信息
        String s = restTemplate.exchange("http://jsonplaceholder.typicode.com/posts", HttpMethod.POST, entity, String.class).getBody();

        System.out.println(s);
    }
posted @ 2022-01-20 23:22  暮雨寒冬  阅读(109)  评论(0编辑  收藏  举报