详细解析rest风格的请求方式1

前言:rest请求封装了很多api,满足各种请求方式以及参数的传递,常见的有post、get请求方式,丰富的请求方法。
post:postForObject、postForEntity、postForLocation
get:getForObject、getForEntity
当然每种请求方法都有不同的重载方法,满足大家不同的参数传递。
今天为大家讲解post请求方式中postForObject的用法以及get请求方式中的getForObject方法。

一、post请求

1.1、postForObject方法

1.1.1postForObject方法的重载方法有几种,今天简单的讲下其中做常用的一种重载方法:

有参:restTemplate.postForObject(url, Object,Class)

无参:restTemplate.postForObject(url, null,Class)

@Autowired
 private RestTemplate restTemplate;
String url="https://blog.csdn.net/";
  Map<String, Object> map = new HashMap<>();
            map.put("name", “张三”);
            map.put("age", 25)Map<String, Object> resultMap = restTemplate.postForObject(url, map, Map.class);
          Map<String, String> dataMap = (Map<String, String>) resultMap.get("data");

1.1.2如果我们的请求中,需要权限验证,比如附带token参数,代码如下:

Map<String, Object> params = new HashMap<>();
params.put("name", “张三”);

HttpHeaders headers = new HttpHeaders();
    headers.set("token", “c01g3a4p3u5”);
HttpEntity httpEntity = new HttpEntity(params, headers);

Map<String, Object> resultMap = restTemplate.postForObject(url, httpEntity, Map.class);
Map<String, String> dataMap = (Map<String, String>) resultMap.get("data");
1.2、postForEntity方法

二、get请求

2.1、getForObject请求方法

2.1.1 getForObject与postForObject的请求方法区别不大,简要概述:

有参:
restTemplate.getForObject(url, Class,Object)
无参:
restTemplate.getForObject(url,Class);

String url="https://blog.csdn.net/";
Map<String, Object> map = new HashMap<>();
          map.put("page", 1);
          map.put("size", 10)Map<String, Object> resultMap = restTemplate.getForObject(url+?currentPage={page}&pageSize={size},Map.class,map );
        Map<String, String> dataMap = (Map<String, String>) resultMap.get("data");

2.1.2 调用带有token的get接口

  String token = prcCsService.getCsToken();
  Map<String, Object> param = new HashMap<>();
  param.put("page", 1);
  param.put("size", 1);

  HttpHeaders headers = new HttpHeaders();
  headers.add("accessToken", token);
  ResponseEntity<Map> response = restTemplate.exchange(
          synchroIbuildUrl + "?currentPage={page}&pageSize={size}",
          HttpMethod.GET,
          new HttpEntity<String>(headers),
          Map.class,
          param);
  Map<String, Object> bodyMap = response.getBody();
  Map<String, Object> mapObj = (Map<String, Object>) bodyMap.get("obj");
2.2、getForEntity请求方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值