SpringBoot - 集成RestTemplate模板(三) - POST请求

POST请求一: postForObject

①. 方法介绍
postForObject()用于发送一个 HTTP POST 请求, 返回值是响应体, 省略了RESPONSE的相关信息。
②. 如何使用
// 1. 发送请求参数为JSON对象, 生成结果为String字符串.
@GetMapping("/test")
public String test() {
    String url = "http://hadoopx.com/user/info";
    // 要发送的数据对象
    User user = new User();
    user.setId(1);
    user.setName("ROCKY");
	// 返回结果为字串
    return restTemplate.postForObject(url, user, String.class);
}
// 2. 使用FROM发送请求参数, 生成结果映射为POJO.
@GetMapping("/test")
public User test() {
    String url = "http://hadoopx.com/user/info";
    // 请求头
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

    // 请求参数
    MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
    map.add("id", "1");
    map.add("name", "ROCKY");

    // 请求体
    HttpEntity<MultiValueMap<String, String>> request =
            new HttpEntity<MultiValueMap<String, String>>(map, headers);
    
    return restTemplate.postForObject(url, request, User.class);
}

POST请求二: postForEntity

①. 方法介绍
postForEntity()同样用于发送一个 HTTP GET 请求, 和上面介绍的 postForObject() 用法几乎相同。
区别在于 postForEntity() 的返回值是 ResponseEntity<T>
②. 如何使用
postForObject() 用法几乎相同。
返回值 ResponseEntity<T>Spring 对 HTTP 请求响应的封装, 包括了几个重要的元素,: 响应码、contentType、contentLength、响应消息体等。其中响应消息体可以通过 ResponseEntity 对象的 getBody() 来获取。

你可能感兴趣的:(SpringBoot,spring,boot)