2.2 Spring Cloud Ribbon 详解

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值