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 Thymeleaf实现HTML属性设置

    Springboot Thymeleaf实现HTML属性设置

    这篇文章主要介绍了Springboot Thymeleaf实现HTML属性设置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2007-11-11
  • 解决Java J2EE乱码问题的方法

    解决Java J2EE乱码问题的方法

    这篇文章主要为大家详细介绍了解决Java J2EE乱码问题的方法的相关资料,需要的朋友可以参考下
    2016-04-04
  • @SpringBootTest 注解报红问题及解决

    @SpringBootTest 注解报红问题及解决

    这篇文章主要介绍了@SpringBootTest 注解报红问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java实现Redis的集合(set)命令操作

    Java实现Redis的集合(set)命令操作

    这篇文章主要介绍了Java实现Redis的集合(set)命令操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • redis与spring整合使用的步骤实例教程

    redis与spring整合使用的步骤实例教程

    这篇文章主要给大家介绍了关于redis与spring整合使用的相关资料,文中通过示例代码将实现的步骤一步步介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • SpringBoot整合MongoDB流程详解

    SpringBoot整合MongoDB流程详解

    这篇文章主要介绍了SpringBoot整合MongoDB流程详解,MongoDB是一种面向文档的数据库管理系统,它是一个介于关系型数据库和非关系型数据库之间的产品,MongoDB支持一种类似JSON的BSON数据格式,既可以存储简单的数据格式,也可以存储复杂的数据类型,需要的朋友可以参考下
    2024-01-01
  • Activiti流程文件部署过程解析

    Activiti流程文件部署过程解析

    这篇文章主要介绍了Activiti流程文件部署过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Mybatis plus通用字段自动填充的示例

    Mybatis plus通用字段自动填充的示例

    这篇文章主要介绍了Mybatis plus通用字段自动填充的示例,帮助大家更好的理解和使用Mybatis,感兴趣的朋友可以了解下
    2021-01-01
  • idea复制module(项目)并在一个窗口展示的教程详解

    idea复制module(项目)并在一个窗口展示的教程详解

    这篇文章主要介绍了idea复制module(项目)并在一个窗口展示的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • java使用apache.poi导出word文件的示例代码

    java使用apache.poi导出word文件的示例代码

    这篇文章主要介绍了java使用apache.poi导出word文件,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07

最新评论