SpringBoot中使用RestTemplate访问Url操作并对返回对象进行操作

SpringBoot中使用RestTemplate访问Url操作并对返回对象进行操作(Json)

最近在实习工作实现一个小的需求需要用到RestTemplate工具类去在后端访问url地址合其他内容,因此记录和分享一下RestTemplate的使用过程和使用方法。

1.创建RestTemplate

        RestTemplate restTemplate = new RestTemplate();

2.设置请求头HttpHeaders

要进行http访问请求头肯定是需要配置,如果不配置相应的请求头,可能会在访问过程中出现一些异常或者是返回结果异常。我这里只是写出了我用的请求头,其他需要的配置可以搜其他的请求头,配置规则即可。

        HttpHeaders headers = new HttpHeaders();
        
        headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
        
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        
        headers.add("Accept-Charset", "application/json;charset=utf-8");

3.POST请求操作

3.1postForObject方法

要进行POST请求,也需要配置一下参数进行传递,所以需要先创建参数Map进行POST方法的参数。

        Map<String, Object> requestBody = new HashMap<>(8);
        
        requestBody.put(para,value);
        
        HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<>(requestBody, headers);
        
        JSONObjectresponseObj = restTemplate.(urlAddress,httpEntity,JSONObject.class);
        //返回Json字符串方便后续的字段操作

        //例如截取json中的data字段,例如这个字段中存储的是一个list,然后就可以对这个对象操作啦
        List<T> resultList = (List<T>) responseObj.get("data");

3.2postForEntity方法

ResponseEntity<String> result = restTemplate.postForEntity(url, httpEntity, String.class);

System.out.println(JSONObject.toJSONString(result));

4.GET请求操作

4.1getForObject

要进行GET请求,这时候不需要配置参数Map,如果有参数需要拼接到Url地址后面

String url ="http://localhost:8080/test/usertest";

StringBuilder urlStringBuilder = new StringBuilder();

String param = "userName", value = "guoshuai";

urlStringBuilder.append(url + "?" + param + "=" + value);

responseObj = restTemplate.getForObject(urlStringBuilder.toString(),JSONObject.class);

4.2getForEntity请求带参数

String url = "http://localhost:8080/test/usertest?userId={userId}";

Map<String,Object> paramMap= new HashMap<>();

paramMap.put("userId","10010");

ResponseEntity<T> result = restTemplate.getForEntity(url,String.class,paramMap);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值