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请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Swing组件编程之JTable表格用法实例详解

    Java Swing组件编程之JTable表格用法实例详解

    这篇文章主要介绍了Java Swing组件编程之JTable表格用法,结合实例形式详细分析了Swing组件中JTable表格的常见定义与使用方法,需要的朋友可以参考下
    2017-11-11
  • java正则替换sql中的参数实例代码

    java正则替换sql中的参数实例代码

    这篇文章主要给大家介绍了关于java正则替换sql中参数的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-10-10
  • Spring Boot如何配置内置Tomcat的maxPostSize值

    Spring Boot如何配置内置Tomcat的maxPostSize值

    这篇文章主要介绍了Spring Boot如何配置内置Tomcat的maxPostSize值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Springboot返回的json屏蔽某些属性的操作

    Springboot返回的json屏蔽某些属性的操作

    这篇文章主要介绍了Springboot返回的json屏蔽某些属性的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 解读CompletableFuture的底层原理

    解读CompletableFuture的底层原理

    本文探讨了Java8中CompletableFuture的原理和应用,详解其异步编程能力、工作机制及实际使用方法,CompletableFuture通过链式调用和状态管理优化异步任务,提高Java应用的效率和性能
    2024-09-09
  • JAVA实现301永久重定向方法

    JAVA实现301永久重定向方法

    本篇文章给大家总结了JAVA中实现永久重定向的方法以及详细代码,对此有需要的朋友可以参考学习下。
    2018-04-04
  • SpringBoot整合WebService服务的实现代码

    SpringBoot整合WebService服务的实现代码

    WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互,这篇文章主要介绍了SpringBoot整合WebService服务的实例代码,需要的朋友可以参考下
    2022-02-02
  • java中的session对象如何获取

    java中的session对象如何获取

    这篇文章主要介绍了java中的session对象如何获取,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • JDK1.8、JDK1.7、JDK1.6区别看这里

    JDK1.8、JDK1.7、JDK1.6区别看这里

    这篇文章主要为大家详细介绍了JDK1.8、JDK1.7、JDK1.6中的源码,对比阅读,发现修改问题以及改进点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • spring cloud config分布式配置中心的高可用问题

    spring cloud config分布式配置中心的高可用问题

    本文给大家介绍spring cloud config分布式配置中心的高可用问题,通过整合Eureka来实现配置中心的高可用,需要的朋友参考下本文
    2018-01-01

最新评论