记一个工作中常用的 RestTemplateUtils
记录了
post请求Response泛型
post请求Response<List>泛型
post请求泛型
get 请求响应泛型对象
亲测可用,有需要的小伙伴自取哈
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.TypeReference;
import com.ruoyi.common.core.domain.PageResult;
import com.ruoyi.common.core.domain.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import java.util.List;
/**
* @author: chenxiao
* @description: resttemplate封装
* @date: Create in 2022/8/31 17:27
* @modified By:
*/
public class RestTemplateUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(RestTemplateUtils.class);
/**
* Description: post请求Response泛型
* <br />
* CreateDate 2021-11-01 16:53:25
*
* @author chenxiao
**/
public static <T> Response<T> postForResponse(RestTemplate restTemplate, String url, Object request,
Class<T> cls, Object... urlVariables) {
long startTime = System.currentTimeMillis();
LOGGER.info("postForResponse url: {},request: {}", url,
JSON.toJSONString(request));
ResponseEntity<String> entity =
restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(request), String.class, urlVariables);
Response<T> result = JSON.parseObject(entity.getBody(), new TypeReference<Response<T>>(cls) {
}.getType());
LOGGER.info("postForResponse url: {},response: {},cost: {} ms", url,
JSON.toJSONString(result),
System.currentTimeMillis() - startTime);
return result;
}
/**
* Description: post请求Response泛型
* <br />
* CreateDate 2021-11-01 16:53:25
*
* @author chenxiao
**/
public static Response postForResponse(RestTemplate restTemplate, String url, Object request,
Object... urlVariables) {
long startTime = System.currentTimeMillis();
LOGGER.info("postForResponse url: {},request: {}", url,
JSON.toJSONString(request));
ResponseEntity<String> entity =
restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(request), String.class, urlVariables);
Response result = JSON.parseObject(entity.getBody(), Response.class);
LOGGER.info("postForResponse url: {},response: {},cost: {} ms", url,
JSON.toJSONString(result),
System.currentTimeMillis() - startTime);
return result;
}
/**
* Description: post请求Response<PageResult>泛型
* <br />
* CreateDate 2021-11-01 16:53:25
*
* @author chenxiao
**/
public static <T> Response<PageResult<T>> postForResponsePageResult(RestTemplate restTemplate, String url,
Object request,
Class<T> cls, Object... urlVariables) {
long startTime = System.currentTimeMillis();
LOGGER.info("postForResponsePageResult url: {},request: {}", url,
JSON.toJSONString(request));
ResponseEntity<String> entity =
restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(request), String.class, urlVariables);
Response<PageResult<T>> result = JSON.parseObject(entity.getBody(),
new TypeReference<Response<PageResult<T>>>(cls) {
}.getType());
LOGGER.info("postForResponsePageResult url: {},response: {},cost: {} ms", url,
JSON.toJSONString(result),
System.currentTimeMillis() - startTime);
return result;
}
/**
* Description: post请求Response<List>泛型
* <br />
* CreateDate 2021-11-01 16:53:25
*
* @author chenxiao
**/
public static <T> Response<List<T>> postForResponseList(RestTemplate restTemplate, String url, Object request,
Class<T> cls, Object... urlVariables) {
long startTime = System.currentTimeMillis();
LOGGER.info("postForResponseList url: {},request: {}", url,
JSON.toJSONString(request));
ResponseEntity<String> entity =
restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(request), String.class, urlVariables);
Response<List<T>> result = JSON.parseObject(entity.getBody(), new TypeReference<Response<List<T>>>(cls) {
}.getType());
LOGGER.info("postForResponseList url: {},response: {},cost: {} ms", url,
JSON.toJSONString(result),
System.currentTimeMillis() - startTime);
return result;
}
/**
* Description: post请求泛型
* <br />
* CreateDate 2021-11-01 16:53:25
*
* @author chenxiao
**/
public static <T> T postForObject(RestTemplate restTemplate, String url, Object request,
Class<T> cls, Object... urlVariables) {
long startTime = System.currentTimeMillis();
LOGGER.info("postForObject url: {},request: {}", url,
JSON.toJSONString(request));
ResponseEntity<String> entity =
restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(request), String.class, urlVariables);
LOGGER.info("postForObject url: {},response: {},cost: {} ms", url,
JSON.toJSONString(entity.getBody()),
System.currentTimeMillis() - startTime);
return JSON.parseObject(entity.getBody(), cls);
}
/**
* Description: post请求泛型
* <br />
* CreateDate 2021-11-01 16:53:25
*
* @author chenxiao
**/
public static <T> T postForObject(RestTemplate restTemplate, String url, HttpEntity<?> requestEntity,
Class<T> cls, Object... urlVariables) {
long startTime = System.currentTimeMillis();
LOGGER.info("postForObject url: {},request: {}", url,
JSON.toJSONString(requestEntity));
ResponseEntity<String> entity =
restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class, urlVariables);
T result = JSON.parseObject(entity.getBody(), cls);
LOGGER.info("postForObject url: {},response: {},cost: {} ms", url,
JSON.toJSONString(result),
System.currentTimeMillis() - startTime);
return result;
}
/**
* Description: get 请求响应泛型对象
* <br />
* CreateDate 2022-05-13 18:41:15
*
* @author chenxiao
**/
public static <T> T getForObject(RestTemplate restTemplate, String url, Class<T> cls) {
long startTime = System.currentTimeMillis();
LOGGER.info("getForObject url: {}", url);
ResponseEntity<String> entity = restTemplate.getForEntity(url, String.class);
T result = JSON.parseObject(entity.getBody(), cls);
LOGGER.info("getForObject url: {},response: {},cost: {} ms", url,
JSON.toJSONString(result),
System.currentTimeMillis() - startTime);
return result;
}
/**
* Description: post请求Response泛型
* <br />
* CreateDate 2021-11-01 16:53:25
*
* @author chenxiao
**/
public static <T> Response<T> getForResponse(RestTemplate restTemplate, String url, Class<T> cls) {
long startTime = System.currentTimeMillis();
LOGGER.info("getForResponse url: {}", url);
ResponseEntity<String> entity = restTemplate.getForEntity(url, String.class);
Response<T> result = JSON.parseObject(entity.getBody(), new TypeReference<Response<T>>(cls) {
}.getType());
LOGGER.info("getForResponse url: {},response: {},cost: {} ms", url,
JSON.toJSONString(result),
System.currentTimeMillis() - startTime);
return result;
}
}
版权声明:本文为chenXiaosCode原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。