京推推cms网站建设,百度做广告费用,淮南先锋网,企业展厅设计公司演绎个性设计RestTemplate类详细解读
RestTemplate 的 GET 请求
Get 请求可以有两种方式#xff1a; 第一种#xff1a;getForEntity 该方法返回一个 ResponseEntity对象#xff0c;ResponseEntity是 Spring 对 HTTP 请求响应的封装#xff0c;包括了几个重要的元素#xff0c;比如响…RestTemplate类详细解读
RestTemplate 的 GET 请求
Get 请求可以有两种方式 第一种getForEntity 该方法返回一个 ResponseEntity对象ResponseEntity是 Spring 对 HTTP 请求响应的封装包括了几个重要的元素比如响应码、contentType、 contentLength、响应消息体等 ResponseEntityString responseEntity
restTemplate.getForEntity(http://01-SPRINGCLOUD-SERVICE-PROVIDER/service/hello,
String.class); String body responseEntity.getBody();
HttpStatus statusCode responseEntity.getStatusCode();
int statusCodeValue responseEntity.getStatusCodeValue();
HttpHeaders headers responseEntity.getHeaders(); System.out.println(body);
System.out.println(statusCode);
System.out.println(statusCodeValue);
System.out.println(headers); 以上代码 getForEntity 方法第一个参数为要调用的服务的地址即服务提供者提供的http://01-SPRINGCLOUD-SERVICE-PROVIDER/service/provide 接口地址注意这里是通过服务名调用而不是服务地址如果改为服务地址就无法实现客户端负载均衡了。
getForEntity 方法第二个参数 String.class 表示希望返回的 body 类型是 String 类型如果希望返回一个对象也是可以的
另外两个重载方法 方法一:public ResponseEntity getForEntity(String url, Class responseType, Object… uriVariables) throws RestClientException 集合参数请求根据占位符 restTemplate.getForEntity(“http://01-SPRINGCLOUD-SERVICE-PROVIDER/service/provide?id{1}name{2}”, String.class, “{1, ‘张无忌’}”).getBody(); //{1, ‘张无忌’}跟占位符对应 方法二:public ResponseEntity getForEntity(String url, Class responseType, MapString, ? uriVariables) throws RestClientException map参数请求根据键 MapString, Object paramMap new ConcurrentHashMap(); paramMap.put(“id”, 1); paramMap.put(“name”, “张无忌”); restTemplate.getForEntity(“http://01-SPRINGCLOUD-SERVICE-PROVIDER/service/provide?id{id}name{name}”, String.class, paramMap).getBody(); 第二种getForObject() 与 getForEntity 使用类似只不过 getForObject 是在getForEntity 基础上进行了再次封装可以将 http 的响应体 body信息转化成指定的对象接收方便我们的代码开发
当你不需要返回响应中的其他信息只需要 body 体信息的时候可以使用这个更方便
它有三个个重载的方法和 getForEntity 相似 T getForObject(URI url, Class responseType) throws RestClientException; T getForObject(String url, Class responseType, Object… uriVariables) throws RestClientException; T getForObject(String url, Class responseType, MapString, ? uriVariables) throws RestClientException; RestTemplate 的 POST 请求
Post 与 Get 请求非常类似 restTemplate.postForObject() restTemplate.postForEntity() restTemplate.postForLocation() RestTemplate 的 PUT 请求
restTemplate.put();
RestTemplate 的 DELETE 请求
restTemplate.delete();