Springboot发送post请求的几种方式总结

 更新时间:2024年01月10日 09:30:41   作者:qq_42607375  
这篇文章主要为大家详细介绍了Springboot发送post请求的几种方式,文中的示例代码讲解详细,对我们学习或工作有一定的帮助,感兴趣的小伙伴可以了解一下

请求体为json形式

/***
url:请求路径
content: 请求参数,为json字符串
token: 请求认证token,放置在请求头里
*/
public ResponseEntity<String> callApi(String url,  String content, String token) {
        RestTemplate restTemplate = new RestTemplate();
        // 设置请求头,指定Content-Type为application/json
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        // 添加Authorization头
        headers.add(Constants.AUTHORIZATION, Constants.TOKEN_PREFIX + shareToken);
        // 创建HttpEntity,将JSON参数和请求头添加到请求中
        HttpEntity<String> requestEntity = new HttpEntity<>(content, headers);
        // 发送POST请求
        ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
        return responseEntity;
    }

请求体为x-www-form-urlencoded

public ResponseEntity<String> callApi(String url,  String content, String token) {
        RestTemplate restTemplate = new RestTemplate();
        // 设置请求头,指定Content-Type为application/json
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        // 添加Authorization头
        headers.add(Constants.AUTHORIZATION, Constants.TOKEN_PREFIX + shareToken);
        JSONObject jsonObject = JSONObject.parseObject(content);
         // 将解析后的 JSON 对象转换为 MultiValueMap
         MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
         for (String key : jsonObject.keySet()) {
             formData.add(key, jsonObject.get(key));
         }
         HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(formData, headers);
         responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
        return responseEntity;
    }

请求体为form-data

public ResponseEntity<String> callApi(String url,  String content, String token) {
        RestTemplate restTemplate = new RestTemplate();
        // 设置请求头,指定Content-Type为application/json
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA_VALUE);
        // 添加Authorization头
        headers.add(Constants.AUTHORIZATION, Constants.TOKEN_PREFIX + shareToken);
        JSONObject jsonObject = JSONObject.parseObject(content);
            // 将解析后的 JSON 对象转换为 MultiValueMap
            MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
            for (String key : jsonObject.keySet()) {
                formData.add(key, jsonObject.get(key));
            }
            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(formData, headers);
            responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
        return responseEntity;
    }

到此这篇关于Springboot发送post请求的几种方式总结的文章就介绍到这了,更多相关Springboot发送post请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现API接口的完整代码

    SpringBoot实现API接口的完整代码

    这篇文章主要给大家介绍了关于SpringBoot实现API接口的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Java中ArrayList的使用详细介绍

    Java中ArrayList的使用详细介绍

    这篇文章主要介绍了Java中ArrayList的使用,本文给大家详细讲述该相关的知识点,并且会通过大量的案例加以说明,需要的朋友可以参考一下
    2022-04-04
  • Java Map的几种循环方式总结

    Java Map的几种循环方式总结

    这篇文章主要是对Java中Map的几种循环方式进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • java图形用户界面实现菜单功能

    java图形用户界面实现菜单功能

    这篇文章主要为大家详细介绍了java图形用户界面实现菜单功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • 学习Java之二叉树的编码实现过程详解

    学习Java之二叉树的编码实现过程详解

    本文将通过代码来进行二叉树的编码实现,文中的代码示例介绍的非常详细,对我们学习Java二叉树有一定的帮助,感兴趣的同学跟着小编一起来看看吧
    2023-08-08
  • 聊一聊带智能提示的spring-boot-starter

    聊一聊带智能提示的spring-boot-starter

    这篇文章主要介绍了带智能提示的spring-boot-starter的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-11-11
  • SpringBoot集成Lettuce客户端操作Redis的实现

    SpringBoot集成Lettuce客户端操作Redis的实现

    本文主要介绍了SpringBoot集成Lettuce客户端操作Redis的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • SpringBoot引入Redis报Redis command timed out两种异常情况

    SpringBoot引入Redis报Redis command timed out两种异常情况

    这篇文章主要给大家介绍了关于SpringBoot引入Redis报Redis command timed out两种异常情况的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • 利用Java实现网站聚合工具

    利用Java实现网站聚合工具

    互联网上有数以万亿计的网站,每个网站大都具有一定的功能。搜索引擎虽然对互联网上的部分网站建立了索引,但是其作为一个大而全的搜索系统,无法很好的定位到一些特殊的需求。因此本文将介绍一个用java实现的网站数据聚合工具,需要的可以参考一下
    2022-01-01
  • Java利用随机分钱模拟财富变化

    Java利用随机分钱模拟财富变化

    这篇文章主要为大家详细介绍了Java如何利用随机分钱思想模拟财富的变化,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-12-12

最新评论