当前位置:   article > 正文

详细解析rest风格的请求方式1_postforobject和postforentity区别

postforobject和postforentity区别

前言: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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
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");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
2.2、getForEntity请求方法
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/302987
推荐阅读
相关标签
  

闽ICP备14008679号