@Component
public class RestTemplateUtils {
@Autowired
private RestTemplate restTemplate;
public <T> T callApi(String url, HttpMethod httpMethod, Map<String,String> headers, Object requestBody,Class<T> clazz) {
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
if (!CollectionUtils.isEmpty(headers)) {
Set<Map.Entry<String, String>> entries = headers.entrySet();
for (Map.Entry<String,String> entry : entries) {
httpHeaders.add(entry.getKey(),entry.getValue());
}
}
if (requestBody == null) {
requestBody = new Object().toString();
}
HttpEntity<Object> httpEntity = new HttpEntity<>(requestBody,httpHeaders);
ResponseEntity<T> responseEntity = restTemplate.exchange(url, httpMethod, httpEntity, clazz);
if (!HttpStatus.OK.equals(responseEntity.getStatusCode())) {
throw new RestTemplateException(responseEntity.getStatusCode().getReasonPhrase());
}
return responseEntity.getBody();
}
}
RestTemplateUtils
最新推荐文章于 2024-07-19 11:46:44 发布