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

本文介绍了如何在SpringBoot中利用RestTemplate工具类进行HTTP请求,包括设置请求头、发起POST和GET请求,以及解析JSON响应。通过示例代码详细展示了如何配置HttpHeaders,使用postForObject和postForEntity方法进行POST请求,以及getForObject和getForEntity方法进行GET请求,获取并处理JSON数据。
摘要由CSDN通过智能技术生成

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
    评论
Spring BootRestTemplate是一个用于访问RESTful Web服务的客户端。它提供了一种简单的方式来访问RESTful Web服务,并且可以与Spring框架无缝集成。使用RestTemplate,我们可以发送HTTP请求并接收响应,以便在我们的应用程序使用它们。 使用RestTemplate,我们可以执行以下操作: 1. 发送HTTP GET请求并接收响应。 2. 发送HTTP POST请求并接收响应。 3. 发送HTTP PUT请求并接收响应。 4. 发送HTTP DELETE请求并接收响应。 我们可以使用RestTemplate访问各种RESTful Web服务,例如Twitter,Facebook,GitHub等。它还支持各种数据格式,例如JSON,XML等。 要使用RestTemplate,我们需要在Spring Boot应用程序添加以下依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 然后,我们可以在我们的应用程序创建一个RestTemplate实例,并使用它来发送HTTP请求。例如,以下代码片段演示了如何使用RestTemplate发送HTTP GET请求: ``` RestTemplate restTemplate = new RestTemplate(); String url = "https://api.github.com/users/octocat"; String response = restTemplate.getForObject(url, String.class); System.out.println(response); ``` 在这个例子,我们创建了一个RestTemplate实例,并使用它来发送HTTP GET请求到GitHub API。我们指定了API的URL,并使用getForObject()方法发送请求。该方法返回一个响应对象,我们将其转换为字符串并打印出来。 总之,RestTemplate是一个非常有用的工具,可以帮助我们轻松地访问RESTful Web服务。它是Spring Boot框架的一部分,因此可以与其他Spring组件无缝集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值