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 实现客户端负载均衡