对restTemplate的封装类

package com.xiaosq.common;
 
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
 
/**
 * @author Morgan.L
 * @version 1.0
 * @date 2021/7/18 21:14
 */
@Slf4j
public class RestUtil {
 
  private static Gson gson = new Gson();
 
  public static <T> T doGet(RestTemplate restTemplate, HttpHeaders headers, String url,
      Class<T> responseType) {
    log.info("RestRequest: url={}", url);
 
    T resp;
    if (headers != null) {
      HttpEntity<String> requestEntity = new HttpEntity<>(null, headers);
      ResponseEntity<T> respEntity = restTemplate
          .exchange(url, HttpMethod.GET, requestEntity, responseType);
      resp = respEntity.getBody();
    } else {
      resp = restTemplate.getForObject(url, responseType);
    }
    log.info("RestResponse: {}", resp);
    return resp;
  }
 
  public static <T> T doPost(HttpHeaders headers, RestTemplate restTemplate,
      Object form, String url, Class<T> responseType) {
    String dataStr;
    if (form instanceof String) {
      dataStr = (String) form;
    } else {
      dataStr = gson.toJson(form);
    }
 
    log.info("RestRequest: url={}, dataStr={}", url, dataStr);
    HttpEntity<String> httpEntity = new HttpEntity<>(dataStr, headers);
    T resp = restTemplate.postForObject(url, httpEntity, responseType);
    log.info("RestResponse: {}", resp);
    return resp;
  }
}