RestTemplate
RestTemplate是Spring用于同步client端的核心类,简化了与http服务的通信,并满足RestFul原则,程序代码可以给它提供URL,并提取结果。 默认情况下,RestTemplate默认依赖jdk的HTTP连接工具。 当然你也可以 通过setRequestFactory属性切换到不同的HTTP源,比如Apache HttpComponents、Netty和OkHttp。
get请求实践
1、getForEntiy函数,返回的是ResponseEntity
1 RestTemplate restTemplate = new RestTemplate();
2 ResponseEntity<String> responseEntity=restTemplate.getForEntity(url+"?name={1}", String.class, "username");
3 String body = responseEntity.getBody();
1RestTemplate restTemplate = new RestTemplate();
2ResponseEntity<TokenBeen> responseEntity =restTemplate.getForEntity(url+"?name={1}", TokenBeen.class, "username");
3if(responseEntity!=null){
4 TokenBeen body = responseEntity.getBody();
5}
getForEntiy函数有三种重载:
-
getForEntity(String url, Class responseType, Object... urlVariables) -
getForEntity(String url, Class responseType, Map urlVariables)
1RestTemplate restTemplate = new RestTemplate();
2Map<String, String> params = new HashMap<>();
3params.put("name", "username");
4ResponseEntity<String> responseEntity = restTemplate.getForEntity(url+"?name={name}", String.class, params);
-
getForEntity(URI uri, Class responseType)
1RestTemplate restTemplate = new RestTemplate();
2UriComponents uriConponents = UriComponentsBuilder.fromUriString(url+"?name={name}").build().expand("username").encode();
3URI uri = uriConponents.toUri();
4ResponseEntity<String> responseEntity = restTemplate.getForEntity(uri, String.class);
2、getForObject函数, 可以看作是对getForEntity进一步封装
1RestTemplate restTemplate = new RestTemplate();
2//注意参数中是uri
3String body = restTemplate.getForObject(uri, String.class);
1RestTemplate restTemplate = new RestTemplate();
2TokenBeen body = restTemplate.getForObject(uri, TokenBeen.class);
post请求实践
public <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables)
throws RestClientException {}
public <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Map<String, ?> uriVariables)
throws RestClientException {}
public <T> T postForObject(URI url, @Nullable Object request, Class<T> responseType) throws RestClientException {}
往期精选推荐
同事辞职了,我一个人做两个人的活,公司又不招人了,该怎么办?