我们在开发过程中,经常会有需要调用外部的接口,spring框架给我们封装好了一个了那就是RestTemplate!!
以前使用的是[HttpClient]HttpClient;
使用
这个是要区分情况的
- 使用者类交给了IOC管理,那直接注入使用
@Component
public class HuanxinUtils {
@Autowired
private restTemplate = new RestTemplate();
}
- 使用者类没有交给IOC管理,就得new出来使用
public class HuanxinUtils {
private static RestTemplate restTemplate = new RestTemplate();
}
RestFul风格的方法
从上面的图可以看出来,有些方法是没有返回的,比如put和delete,但是可以封装请求参数和请求头。
例子一
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Bearer");
HttpEntity entity = new HttpEntity(body.toString() , headers);
restTemplate.put("http://a1.easemob.com/users", entity, null);
例子二
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Bearer");
HttpEntity entity = new HttpEntity(body.toString() , headers);
ResponseEntity<Object> responseEntity = restTemplate.postForEntity("http://a1/users/{username}/password", entity, null, username);
return responseEntity.getStatusCodeValue() == 200;
get和exchange之间的联系
查看api知道restTemplate.get方法是无法把请求参数放到里面的,哪如何做呢?这个时候就得用exchange了。