SpringRestTemplate是Spring 提供的用于访问 Http 服务的客端, RestTemplate提供了多种便捷访问远程Http服务的方法,对常见的 GET,POST,PUT等方法进行了封装,方便我们使用。
下面是基于Springboot的集成方法:
引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
RestTemplate配置
@Configuration
public class RestTemplateConfig {
@Bean
@ConditionalOnMissingBean
public RestTemplate restTemplate() {
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setConnectTimeout(10000);
requestFactory.setReadTimeout(10000);
return new RestTemplate(requestFactory);
}
}
具体使用
注入
@Autowired
private RestTemplate restTemplate;
GET方法:
普通方式
//返回 response 可通过此拿到 responseHeader , 通过response.getBody()拿到 User对象
ResponseEntity<User> response = restTemplate.getForEntity(url, User.class);
带请求头:
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type","application/json");
HttpEntity httpEntity = new HttpEntity(json,headers);
ResponseEntity<ReturnVO> response = restTemplate.exchange(Url, HttpMethod.GET, requestEntity, ReturnVO.class);
POST方法
1、
postForEntity(String url, Object request, Class<T> responseType, Object... uriVariables)
request参数即为请求体参数
通用请求
exchange(URI url, HttpMethod method, HttpEntity<?> requestEntity, Class<T> responseType)