跳到主要内容

Spring Cloud Alibaba 之 Nacos,RestTemplete,集成OpenFeign(六)

一、RestTemplete

服务消费者去调用服务提供者提供的服务时,使用了一个极其方便的对象叫RestTemplate,我们通常使用RestTemplate中最简单的一个功能getForObject 发起了一个get请求去调用服务端的数据,同时,我们还通过配置@LoadBalanced注解开启客户端负载均衡

RestTemplate是基于Rest的请求方式,通常是有四种

GET请求 --查询数据

POST 请求 –添加数据

PUT请求 – 修改数据

DELETE 请求 –删除数据

1、RestTemplate 的 GET 请求

Get请求可以有两种方式:

(1)getForEntity

该方法返回一个 ResponseEntity对象,ResponseEntity是 Spring 对 HTTP 请求响应的封装,包括了几个重要的元素,比如响应码、contentType、 contentLength、响应消息体等

//调用SpringCloud服务提供者提供的服务
ResponseEntity<String> responseEntity = restTemplate.getForEntity(serviceName + "/service/hello", String.class);

int statusCodeValue = responseEntity.getStatusCodeValue();
HttpStatus httpStatus = responseEntity.getStatusCode();
HttpHeaders httpHeaders = responseEntity.getHeaders();
String body = responseEntity.getBody();

System.out.println(statusCodeValue);
System.out.println(httpStatus);
System.out.println(httpHeaders);
System.out.println(body);

return responseEntity.getBody();

getForEntity 方法第一个参数为要调用的服务的地址,即服务提供者提供的 /service/hello 接口地址,注意这里是通过服务名调用而不是服务地址,如果改为服务地址就无法使用 Ribbon 实现客户端负载均衡