一、RestTemplate配置类
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
RestTemplate build = restTemplateBuilder
.requestFactory(OkHttp3ClientHttpRequestFactory.class)
.setConnectTimeout(Duration.ofSeconds(10))
.setReadTimeout(Duration.ofSeconds(20))
.build();
build.getMessageConverters().add(new TextJsonSupport(Jackson2ObjectMapperBuilder.json().build()));
return build;
}
}
public class TextJsonSupport extends MappingJackson2HttpMessageConverter {
public TextJsonSupport(ObjectMapper objectMapper) {
super(objectMapper);
setSupportedMediaTypes(Arrays.asList(new MediaType("text", "json")));
}
public TextJsonSupport() {
super();
}
}
二、RestTemplate工具类
public class RestTemplateUtil {
public static Object doGet(String url, HttpHeaders httpHeaders) {
RestTemplate restTemplate = new RestTemplate();
HttpEntity<Object> request = new HttpEntity<>(httpHeaders);
ResponseEntity<Object> result = restTemplate.exchange(url, HttpMethod.GET, request, Object.class);
if (null != result && null != result.getBody()) {
return result.getBody();
}
return null;
}
public static Object doPost(String url, HttpHeaders httpHeaders, JSONObject params) {
RestTemplate restTemplate = new RestTemplate();
HttpEntity<Object> request = new HttpEntity<>(params, httpHeaders);
ResponseEntity<Object> result = restTemplate.exchange(url, HttpMethod.POST, request, Object.class);
if (null != result && null != result.getBody()) {
return result.getBody();
}
return null;
}
public static Object doPostJson(String url, HttpHeaders httpHeaders, JSONObject params) {
RestTemplate restTemplate = new RestTemplate();
HttpEntity<Object> request = new HttpEntity<>(params, httpHeaders);
ResponseEntity<JSONObject> result = restTemplate.exchange(url, HttpMethod.POST, request, JSONObject.class);
if (null != result && null != result.getBody()) {
return result.getBody();
}
return null;
}
}