RestTemplate使用

GET资源

getForObject()

该方法接受3个参数:

  1. URL格式请求链接, 可以是String或URI类型(不同类型,参数列表表达形式不一样)
  2. 实体类, 和json/xml绑定的实体类对象
  3. 可变参数列表或Map类型的参数列表

URL格式链接支持占位符

getForEntity()

同getForObject()方法相似,但它不会直接返回绑定后的实体类,而是返回ResponseEntity对象,这个对象附带响应的元数据

如果要获取实体类,需要调用ResponseEntity.getBody()方法

ResponseEntity.getHeaders()方法返回响应的头部

ResponseEntity.getStatusCode()方法返回响应状态码

POST资源

postForObject()

该方法第一个参数都是资源要 POST 到的 URL ,第二个参数是要发送的对象,而第三个参数是预期返回的 Java 类型。
在将URL作为 String 类型的两个版本中,第四个参数指定了 URL 变量(要么是可变参数列表,要么是一个 Map )

postForEntity()

使用方法同getForEntity()类似

postForLocation()

同postForEntity()类似,第一个参数都是资源要 POST 到的 URL ,第二个参数是要发送的对象,但响应不再返回实体类而是返回新建资源的位置

exchange()——在请求中添加请求头部

它的第一参数是URL链接,第二参数是请求方法,第三参数用于在请求中发送资源,第四参数表示响应体绑定的实体类,最后一个参数是URL参数列表

如果要设置请求头信息,只需在第三参数位置传入 HttpEntity 对象, HttpEntity 中包含承载头信息的 MultiValueMap

下面是一个HttpEntity示例:

MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Accept", "application/json");
HttpEntity<Object> requestEntity = new HttpEntity<Object>(headers);

如果是一个PUT或POST请求,我们需要为HttpEntity设置在请求体中发送的资源对象

原文地址:https://www.cnblogs.com/weixia-blog/p/12333984.html