springcloud(3),RestTemplate的常用方法

sprongcloud学习记录 专栏收录该内容
3 篇文章 0 订阅

1.RestTemplate类在springcloud中发送请求,可以使用get,post,put,delete方式发送,分别对应GetMapping,PostMapping

PutMapping,DeleteMapping

2.get请求(查找),常用两个方法,getForObject和getForEntity

String str = restTemplate.getForObject("http://01-SPRINGCLOUD-SERVICE-PROVIDER/web/hello", String.class);

ResponseEntity<String> forEntity = restTemplate.getForEntity("http://01-SPRINGCLOUD-SERVICE-PROVIDER/web/hello", String.class);

getForObject直接返回请求结果,返回值类型有服务提供者方法返回值决定,等价于getForEntity().getBody()

getForEntity返回一个ResponseEntity类型,可以通过get方法回去一些值

int statusCodeValue = forEntity.getStatusCodeValue();
HttpStatus statusCode = forEntity.getStatusCode();
HttpHeaders headers = forEntity.getHeaders();
String body = forEntity.getBody();

statusCodeValue===200
statusCode===200 OK
headers===[Content-Type:"text/plain;charset=UTF-8", Content-Length:"17", Date:"Fri, 12 Jun 2020 06:09:31 GMT", Keep-Alive:"timeout=60", Connection:"keep-alive"]
body===hello,springcloud

以上为控制台打印的信息

getForEntity和getForObject也可以传递参数在url后面拼接,可以使用数组和map,当使用数组时id={1}&name={2},使用map时

id={id}&name={name}

3.post请求(增加),常用方法,postForObject,postForEntity和postForLocation

MultiValueMap multiValueMap = new LinkedMultiValueMap();
multiValueMap.add("id","100");
multiValueMap.add("name","小果子");
String str = (String) restTemplate.postForEntity("http://01-SPRINGCLOUD-SERVICE-PROVIDER/web/post/{id}/{name}",null, String.class,multiValueMap).getBody();

 

@PostMapping("/web/post/{id}/{name}")
public String post(@PathVariable("id") String id,
                   @PathVariable("name") String name){
    System.out.println(id);
    System.out.println(name);
    return "hello,post请求";
}

post请求的参数只能为MultiValueMap ,不能使用普通的hashmap或者数组,其他使用与get相似,postForLocation需要提供者返回uri

4.put请求(修改),只有一个put()方法

Map map = new HashMap();
map.put("id","100");
map.put("name","小果子");
restTemplate.put("http://01-SPRINGCLOUD-SERVICE-PROVIDER/web/put/{id}/{name}",null, map);
return "put请求";

 

@PutMapping("/web/put/{id}/{name}")
public String put(@PathVariable("id") String id,
                   @PathVariable("name") String name){
    System.out.println(id);
    System.out.println(name);
    return "hello,post请求";
}

可以受用普通map传值,put请求没有返回值

5.delete请求(删除),只有一个方法

MultiValueMap multiValueMap = new LinkedMultiValueMap();
multiValueMap.add("id","100");
multiValueMap.add("name","小果子");
restTemplate.delete("http://01-SPRINGCLOUD-SERVICE-PROVIDER/web/delete/{id}/{name}", multiValueMap);
return "delete请求";
@DeleteMapping("/web/delete/{id}/{name}")
public String delete(@PathVariable("id") String id,
                  @PathVariable("name") String name){
    System.out.println(id);
    System.out.println(name);
    return "hello,delete请求";
}

刚刚开始学习,哪里不对还请各位帮忙指正

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值