RestTemplate
Get 请求
第一种:getForEntity函数
该方法返回的是ResponseEntity,是Spring对Http请求响应的封装。
ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://eureka-client/dc?name={1}", String.class, "wnc");
String body = responseEntity.getBody();
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... uriVariables)
url为请求的地址
第二个参数为请求响应体body包装的类型
第三个参数为url的参数的占位符对应的值
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> uriVariables)
//传参为Map形式
Map<String,String> map = new HashMap<String,String>();
map.put("name","zhangsan");
ResponseEntity<String> responseEntity1 = restTemplate.getForEntity("http://eureka-client/dc?name={name}",String.class,map );
String body1 = responseEntity1.getBody();
public <T> ResponseEntity<T> getForEntity(URI url, Class<T> responseType)
URI的方式,不常见,知道即可。
第二种:getForObject函数
对getForEntity的进一步封装,HttpMessageConverterExtractor对Http的返回进行封装
HttpMessageConverterExtractor responseExtractor = new HttpMessageConverterExtractor(responseType, this.getMessageConverters(), this.logger);
其有两种方法
public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables)
public <T> T getForObject(URI url, Class<T> responseType)
参数原理与上方一致。
POST请求
public <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Object... uriVariables)
public <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)
public <T> ResponseEntity<T> postForEntity(URI url, Object request, Class<T> responseType);
public <T> T postForObject(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)
public <T> T postForObject(String url, Object request, Class<T> responseType, Object... uriVariables)
public <T> T postForObject(URI url, Object request, Class<T> responseType)
PUT请求
put请求为void类型
public void put(String url, Object request, Object... uriVariables)
public void put(String url, Object request, Map<String, ?> uriVariables)
public void put(URI url, Object request)
DELETE请求
public void delete(String url, Object... uriVariables)
public void delete(String url, Map<String, ?> uriVariables)
public void delete(URI url)